Dask中KilledWorker异常是什么意思?

时间:2017-10-11 15:04:16

标签: dask

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

1 个答案:

答案 0 :(得分:15)

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

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

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

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

allowed-failures: 3     # number of retries before a task is considered bad