Dask distributed.worker内存使用率很高,但worker没有要存储到磁盘的数据

Dask distributed.worker内存使用率很高,但worker没有要存储到磁盘的数据,dask,dask-distributed,Dask,Dask Distributed,当我试图运行一段代码,将算法应用于我拥有的数据集时,会出现上述错误。在阅读了上的文档之后,我仍然不清楚这个错误会对这个应用程序的结果产生什么影响。这只是影响了代码的速度或效率,还是会影响我的结果?该警告表示您的进程占用的内存比您所说的要多得多。在这种情况下,Dask可能会暂停执行,甚至开始重新启动工作程序 警告还说,Dask本身并没有保留任何数据,因此它无法为这种情况提供太多帮助(比如删除数据)。我的猜测是,您正在使用的一些库占用了大量内存。您可能希望使用内存超过2GB的Dask工作线程。我的一

当我试图运行一段代码,将算法应用于我拥有的数据集时,会出现上述错误。在阅读了上的文档之后,我仍然不清楚这个错误会对这个应用程序的结果产生什么影响。这只是影响了代码的速度或效率,还是会影响我的结果?

该警告表示您的进程占用的内存比您所说的要多得多。在这种情况下,Dask可能会暂停执行,甚至开始重新启动工作程序


警告还说,Dask本身并没有保留任何数据,因此它无法为这种情况提供太多帮助(比如删除数据)。我的猜测是,您正在使用的一些库占用了大量内存。您可能希望使用内存超过2GB的Dask工作线程。

我的一个项目就是这样: map_分区的输出也是一个大数据帧。由于输出存储在内存中,因此出现此警告\

考虑以下示例:

distributed.worker - WARNING - Memory use is high but worker has no data to store to disk.  Perhaps some other process is leaking memory?  Process memory: 3.91 GB -- Worker memory limit: 2.00 GB
distributed.worker - WARNING - Worker is at 41% memory usage. Resuming worker. Process memory: 825.12 MB -- Worker memory limit: 2.00 GB

因此,如果我可以增加工作人员的内存,那么我就不会有这个问题了?此外,这会影响数据处理的速度,而不是数据处理的方式。增加内存是一个很好的开始。2GB对于Python数据科学堆栈来说很小,仅用于代码,它往往会占用大约500MB的内存。不过,我无法为您的特殊情况做出任何保证。这个措辞让我个人感到困惑——“内存使用率高”意味着大量数据,“工人没有数据”意味着很少数据。“但是”应该是一个,因此……“我不是挑剔;我真的不知道在这种情况下发生了什么,我也不知道。Dask不是进程中运行的唯一东西。可能是其他东西占用或泄漏内存。您是如何解决的?
def Processor(df):
    gf = ....
    return len(gf)

out= dask_df.map_partitions(Processor).compute(scheduler='processes')