【问题标题】:How to check why Dask is not freeing up memory on Variable overwrite如何检查为什么 Dask 没有在变量覆盖时释放内存
【发布时间】:2020-08-05 18:58:28
【问题描述】:

有一个 dask.DataFrame 消耗大约 100GB 内存::

ddf = client.persist(ddf)
len(ddf_c.index)
# 246652596 rows
## Running some other code like groupby/aggregate etc

现在我想通过.loc操作符过滤掉数据,但是运行以下之后,RAM消耗为165GB:

ddf_c = ddf_c.loc[ddf_c.is_in_valid_set_of_combis == True]
ddf_c = client.persist(ddf_c) # Now we have 165GB RAM consumptioon

如何检查阻止 Dask 真正覆盖 ddf_c dask.DataFrame 的打开/待处理/等待期货/任务/数据集?

这是信息页面的样子:

('loc-series-b0f23c725a607fed56584d9e41e57de8', 77)     227.41 MB 
[... around 50 entries ...]

【问题讨论】:

    标签: dask distributed-computing dask-distributed dask-dataframe


    【解决方案1】:

    您可以在仪表板的“信息”页面中跟踪依赖关系(单击顶部的信息选项卡)

    在你的情况下,我可能不会坚持到最后一步。

    【讨论】:

    • 好的,是的,我可以单击它并使用loc-series-{{some_id}} 查看一些依赖项,我会看到不同的内存/处理状态,例如waitingreleasedprocessingmemory。但是您如何为特定的ddf 找到这些开放依赖项?我可以从client 对象中的一些id 开始,然后进一步挖掘吗?
    猜你喜欢
    • 2018-06-21
    • 1970-01-01
    • 2020-12-01
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 2015-06-14
    相关资源
    最近更新 更多