我有一个分布式Dask集群,我通过Dask分布式客户端将大量工作发送到该集群。
在发送完一堆工作后,我希望得到一份报告或其他东西,告诉我每个工作人员的内存使用峰值是多少。
这可以通过现有的诊断工具来实现吗?https://docs.dask.org/en/latest/diagnostics-distributed.html
谢谢!最好的
发布于 2021-02-06 11:55:36
特别是对于内存,可以使用client.scheduler_info() (可以将其转储为json)从调度器(在运行时)提取信息。对于峰值内存,必须有一个额外的函数来比较当前使用情况和以前的使用情况,并选择max。
对于许多其他有用的信息,但不是峰值内存消耗,有内置的报告:
from dask.distributed import performance_report
with performance_report(filename="dask-report.html"):
## some dask computation(文档中的代码:https://docs.dask.org/en/latest/diagnostics-distributed.html)
更新:还有一个专门用于dask的插件,可以记录每个任务的最小/最大内存使用量:https://github.com/itamarst/dask-memusage
更新2:有一个很好的博客帖子,里面有跟踪内存使用情况的dask:https://blog.dask.org/2021/03/11/dask_memory_usage的代码
https://stackoverflow.com/questions/66071794
复制相似问题