【发布时间】:2018-03-23 07:59:10
【问题描述】:
当使用带有 dask.distributed 调度程序的 Dask 时,我的任务返回 KilledWorker 异常。这些错误是什么意思?
【问题讨论】:
标签: dask
当使用带有 dask.distributed 调度程序的 Dask 时,我的任务返回 KilledWorker 异常。这些错误是什么意思?
【问题讨论】:
标签: dask
当 Dask 调度程序不再信任您的任务时会生成此错误,因为当工作人员意外死亡时它经常出现。它旨在保护集群免受杀死工作人员的任务的影响,例如由于段错误或内存错误。
每当一个工作人员意外死亡时,调度程序都会记录该工作人员死亡时正在运行哪些任务。它会在其他工作人员身上重试这些任务,但也会将它们标记为可疑。如果多个工作人员死亡时存在相同的任务,那么最终调度程序将放弃尝试重试此任务,而是将其标记为失败,并出现异常KilledWorker。
这通常意味着您的任务存在其他问题。也许它会导致分段错误或分配过多的内存。也许它使用了一个不是线程安全的库。或者也许只是很不走运。无论如何,您应该检查您的工作人员日志以确定您的工作人员失败的原因。这可能是比您的任务失败更大的问题。
您可以通过修改 ~/.config/dask/distributed.yaml 文件中的以下条目来控制此行为。
allowed-failures: 3 # number of retries before a task is considered bad
【讨论】:
~/.dask/config.yaml文件,如何更改此参数
~/.config/dask/distributed.yaml。我已经更新了答案
KilledWorker 不清楚任务的问题是什么,甚至是任务的问题......