Dask:处理反应迟钝的工人
Dask: handling unresponsive workers
将 Dask 与 SGE 或 PBS 集群一起使用时,我有时会遇到工作人员反应迟钝的情况。
这些工作人员在仪表板信息部分以红色突出显示,其“最后一次看到”的数字不断增加。
我知道如果提交的任务持有 GIL 的时间过长,就会发生这种情况,但这里不是这种情况。我说的是出现问题的工人(可能与 dask 或任务本身无关)。
他们不会回来,也不会被检测为死亡。
问题是提交给这些工作人员的任务(他们在收到任务后变得无响应,可能是在加载环境时)永远不会结束并阻止一切。
如果 worker 在给定时间内没有响应,是否有允许“超时”或“无效”的设置?
如果不能,是否可以手动执行此失效并将剩余任务分派给其他工作人员,推荐的方法是什么?
提前感谢您就此问题提供的任何帮助。
如果有人想知道同样的事情,答案已在 following topic 中给出。
设置 worker-ttl parameter 允许在指定时间内未看到工人时将其视为已死亡。
worker-ttl:
type:
- string
- "null"
description: |
Time to live for workers.
If we don't receive a heartbeat faster than this then
we assume that the worker has died.
这可以使用 dask 进行设置
dask.config.set({"distributed.scheduler.worker-ttl": "120min"})
将 Dask 与 SGE 或 PBS 集群一起使用时,我有时会遇到工作人员反应迟钝的情况。
这些工作人员在仪表板信息部分以红色突出显示,其“最后一次看到”的数字不断增加。
我知道如果提交的任务持有 GIL 的时间过长,就会发生这种情况,但这里不是这种情况。我说的是出现问题的工人(可能与 dask 或任务本身无关)。
他们不会回来,也不会被检测为死亡。
问题是提交给这些工作人员的任务(他们在收到任务后变得无响应,可能是在加载环境时)永远不会结束并阻止一切。
如果 worker 在给定时间内没有响应,是否有允许“超时”或“无效”的设置?
如果不能,是否可以手动执行此失效并将剩余任务分派给其他工作人员,推荐的方法是什么?
提前感谢您就此问题提供的任何帮助。
如果有人想知道同样的事情,答案已在 following topic 中给出。
设置 worker-ttl parameter 允许在指定时间内未看到工人时将其视为已死亡。
worker-ttl:
type:
- string
- "null"
description: |
Time to live for workers.
If we don't receive a heartbeat faster than this then
we assume that the worker has died.
这可以使用 dask 进行设置
dask.config.set({"distributed.scheduler.worker-ttl": "120min"})