Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Dask分布式工作进程在达到80%内存限制时暂停_Python_Dask_Distributed - Fatal编程技术网

Python Dask分布式工作进程在达到80%内存限制时暂停

Python Dask分布式工作进程在达到80%内存限制时暂停,python,dask,distributed,Python,Dask,Distributed,我在Dask工作区内存泄漏方面遇到问题。 每当其中一个工作人员达到其内存限制的80%时,他们就会暂停并不再计算任何内容: 在这里,您可以看到四个面板“存储的字节”、“任务流”、“进度”和“任务处理”。 “存储的字节”面板显示每个辅助进程(y轴)占用的内存量(x轴)。 “任务流”面板是线程(y轴)和处理任务所需的运行时(x轴)的可视化。请注意,每个辅助线程都有两个线程。 “任务处理”面板显示了工作人员之间任务分布的可视化。Dask平衡要做的工作量,即确保工人始终有相似数量的任务要处理。 “进度”

我在Dask工作区内存泄漏方面遇到问题。 每当其中一个工作人员达到其内存限制的80%时,他们就会暂停并不再计算任何内容:

在这里,您可以看到四个面板“存储的字节”、“任务流”、“进度”和“任务处理”。 “存储的字节”面板显示每个辅助进程(y轴)占用的内存量(x轴)。 “任务流”面板是线程(y轴)和处理任务所需的运行时(x轴)的可视化。请注意,每个辅助线程都有两个线程。 “任务处理”面板显示了工作人员之间任务分布的可视化。Dask平衡要做的工作量,即确保工人始终有相似数量的任务要处理。 “进度”面板仅显示处理阶段以及阶段任务中有多少已经完成/在内存中/等待计算

这是一个简单的
top
,类似于对工作人员及其内存限制等的概述。 如您所见,Worker 1、Worker 2和Worker 3的CPU使用率较低(~5%),存储容量为6GB。也就是说,他们达到了80%的内存限制,不接受任何新任务

设置lifetime=“20分钟”,lifetime\u restart=True有助于不时重新启动工作进程。 但是,当工作进程非常快地达到内存限制时,它只会暂停约20分钟,直到重新启动

有没有更好的方法让员工早点重新开始工作? 我不想降低生命周期太多,因为长时间运行的任务可能无法完成

最好的策略是:

  • 工作人员完成(长时间运行)任务

  • Worker检查您要查找的策略的存储项大小是否如下所述:


    您可以取消80%的冻结限制,并通过更改配置使事情更快地重新启动。这里记录了这些配置值:

    对于我自己和Dask的任何新手来说,您能描述一下显示的图像吗?请查看我的编辑@blong:)太好了,谢谢@Hoeze:)