gpt4 book ai didi

python - 如何获取有关特定 Dask 任务的信息

转载 作者:太空宇宙 更新时间:2023-11-03 14:54:01 25 4
gpt4 key购买 nike

我遇到了一个问题,我的分布式集群似乎“挂起”了——例如任务停止处理,因此积压了未处理的任务,因此我正在寻找一些方法来帮助调试正在发生的事情。

Client 上有一个 processing 方法,它会告诉我每个 worker 目前正在运行什么任务,但是 AFAICS 这是关于 上可用任务的唯一信息>客户端对象?

我想要做的是不仅能够查询处理任务,而且能够查询所有任务,包括已处理、正在处理和出错,并且对于每个任务能够获得一些统计信息,例如 submitted_timecompletion_time 可以让我找出哪些任务正在阻塞集群。

这类似于 ipyparallel.AsyncResult 上的扩展元数据

能够为任何给定任务获取 args/kwargs 是件好事。这对于调试失败的任务特别有帮助。

目前是否可以使用这些功能,或者有什么方法可以获取我想要的信息吗?

非常欢迎任何其他关于如何调试问题的建议。

最佳答案

截至 2017 年 5 月,不存在明确的“给我有关任务的所有信息”操作。但是,您可以使用客户端直接调查任务状态。这将需要您深入了解调度程序和工作程序跟踪的信息。请参阅以下文档页面:

要查询此状态,我会使用 Client.run_on_schedulerClient.run方法。这些函数分别在调度程序或工作程序上运行。如果此函数包含 dask_schedulerdask_worker 参数,则该函数将被赋予调度程序或工作对象本身。

def f(dask_scheduler):
return dask_scheduler.task_state

client.run_on_scheduler(f)

您现在可以检查调度程序或工作人员知道的任何状态,并运行任何内部诊断检查。不过,您选择调查的内容完全取决于您的用例。

def f(keys, dask_scheduler=None):
return dask_scheduler.transition_story(*keys)

client.run_on_scheduler(f, [key1, key2, key3])

关于python - 如何获取有关特定 Dask 任务的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44014988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com