我注意到,使用dask分布式集群,一些长期运行的任务将从pending
切换到finished
,而其他任务将从pending
切换到lost
。
我怀疑一些lost
任务仍然在运行,因为我看到dask-worker
进程的CPU使用率很高,即使将来没有状态pending
。
lost
到底是什么意思?长期运行的任务(小时)是否可以被归类为lost
,因为它们可能会阻止员工向计划者报告?还有什么会导致状态lost
,调度程序对此有何反应?
发布于 2018-11-18 08:56:27
这意味着由于某种原因,调度程序不再具有执行此任务所需的信息。通常情况下,这是由于工人丢失了无弹性的数据,例如,如果您显式地将一段数据分散到单个员工,那么该员工就会失败。
>>> future = client.scatter(123)
>>> x = client.submit(f, future)
... worker holding future/123 dies
>>> x.status
'lost'
不过,这在一般情况下是罕见的。通常,如果工作人员停机,调度程序可以在其他地方复制特定任务的所有工作。
与往常一样,提供一个minimal complete verifiable example可以帮助您隔离在特定情况下发生的事情。
https://stackoverflow.com/questions/53361062
复制