2017-09-16 80 views
1

我遇到了一個問題,如果在短時間內提交大量任務,dask調度程序會被殺死(但工作人員繼續運行),並出現內存錯誤。是否有dask api在dask羣集中獲取當前任務數

如果可以獲取羣集上當前的任務數量,那麼很容易控制提交給羣集的併發任務的數量。

注意:任務正在從多個客戶端提交給同一個調度程序。

回答

0

您可以使用client.run_on_scheduler方法在調度程序上運行任意Python函數。

使用此功能,您可以查看您喜歡的任何scheduler state

client.run_on_scheduler(lambda dask_scheduler: dask_scheduler.tasks) 

請注意,調度程序可以處理數百萬個任務。如果你接近這個地方,那麼你應該重新考慮你如何使用Dask。爲了獲得最佳性能,您應該選擇需要幾百毫秒或更長時間的任務。

+0

感謝MR分享的回覆和信息。 –

+0

@MR,是否有任何推薦的調度程序節點的基礎結構配置。目前,我正在56G RAM上運行調度程序,其中兩個工作站節點具有56G RAM和16個內核。 –

+0

通常,調度程序不應該需要那麼多的RAM。這是一個單線程的過程,在理想條件下,不能處理那麼多的數據。 – MRocklin