解决或调试此问题有哪些策略?
distributed.worker-警告-内存使用率很高,但是worker没有要存储到磁盘的数据。也许其他进程正在泄漏内存?进程内存:26.17 GB-工作者内存限制:32.66 GB
基本上,我只是在一台机器上运行许多并行作业,但是却是一个调度程序,并尝试了许多不同的工人。每当我启动大量作业时,内存就会随着时间的推移逐渐增加,并且只有在启动群集时才会减少。
我正在尝试使用fire_and_forget。 .release()期货会有所帮助吗?我通常是通过REPL的client.submit启动这些任务,然后终止REPL。
如果这是在泄漏的库中使用dask的正确方法,将很乐意偶尔反弹工作人员并添加一些重试模式。
更新:
我尝试将工作人员内存限制为2 GB,但是仍然出现此错误。当错误发生时,它似乎陷入了某种无法恢复的循环,不断地打印错误,并且没有计算发生。
答案 0 :(得分:1)
在这种情况下,Dask不会泄漏内存。还有别的。达斯克只是在告诉你。与Dask一起运行的代码中的某些内容似乎正在泄漏某些内容。