Dask中KilledWorker异常是什么意思?

MRo*_*lin 9 dask

KilledWorker将Dask与dask.distributed调度程序一起使用时,我的任务将返回异常.这些错误意味着什么?

MRo*_*lin 18

当Dask调度程序不再信任您的任务时会生成此错误,因为当工作程序意外死亡时,它经常出现.它旨在保护群集免受杀死工作人员的任务,例如段错误或内存错误.

每当工人意外死亡时,调度程序会记录该工作人员死亡时正在运行的任务.它重新审视其他工作人员的任务,但也将其标记为可疑.如果几个工作人员死亡时存在相同的任务,那么最终调度程序将放弃尝试重试此任务,而是将其标记为因异常而失败KilledWorker.

这通常意味着您的任务还有其他问题.也许它会导致分段错误或分配太多内存.也许它使用的是非线程安全的库.或者它可能只是非常不走运.无论如何,您应该检查您的工作日志以确定您的工作人员失败的原因.这可能是一个比你的任务失败更大的问题.

您可以通过修改~/.config/dask/distributed.yaml文件中的以下条目来控制此行为.

allowed-failures: 3     # number of retries before a task is considered bad
Run Code Online (Sandbox Code Playgroud)

  • 我通过跟踪UI看到的日志在我的案例中没有包含任何有用的详细信息,以及任务崩溃的原因.是否有额外的日志要求?转储文件以查看某个文件系统路径?! (4认同)
  • 这已移至`~/.config/dask/distributed.yaml`。我已经更新了答案 (3认同)