敏捷的分布式工作者在运行许多任务时总是会泄漏内存

时间:2019-10-07 18:48:56

标签: memory-leaks dask

解决或调试此问题有哪些策略?

distributed.worker-警告-内存使用率很高,但是worker没有要存储到磁盘的数据。也许其他进程正在泄漏内存?进程内存:26.17 GB-工作者内存限制:32.66 GB

基本上,我只是在一台机器上运行许多并行作业,但是却是一个调度程序,并尝试了许多不同的工人。每当我启动大量作业时,内存就会随着时间的推移逐渐增加,并且只有在启动群集时才会减少。

我正在尝试使用fire_and_forget。 .release()期货会有所帮助吗?我通常是通过REPL的client.submit启动这些任务,然后终止REPL。

如果这是在泄漏的库中使用dask的正确方法,将很乐意偶尔反弹工作人员并添加一些重试模式。

更新:

我尝试将工作人员内存限制为2 GB,但是仍然出现此错误。当错误发生时,它似乎陷入了某种无法恢复的循环,不断地打印错误,并且没有计算发生。

1 个答案:

答案 0 :(得分:1)

在这种情况下,Dask不会泄漏内存。还有别的。达斯克只是在告诉你。与Dask一起运行的代码中的某些内容似乎正在泄漏某些内容。