2017-09-16 1 views
1

短期間に大量のタスクが送信された場合、daskスケジューラが強制終了されますが、メモリエラーが発生します。daskクラスタに現在のタスク数を取得するためのdask apiはありますか?

クラスタ上で現在のタスク数を取得することができれば、クラスタに送信された並行タスクの数を簡単に制御できます。

注:タスクは、複数のクライアントから同じスケジューラに送信されています。

答えて

0

スケジューラで任意のPython関数をclient.run_on_schedulerメソッドで実行できます。

これを使用すると、scheduler stateのいずれかを見ることができます。

client.run_on_scheduler(lambda dask_scheduler: dask_scheduler.tasks) 

スケジューラが何百万というタスクを処理できることに注意してください。これに近いところにいるなら、おそらくDaskをどのように使用しているのか考え直すべきでしょう。最適なパフォーマンスを得るには、数百ミリ秒以上かかるタスクを選択する必要があります。

+0

ご返信いただきありがとうございました。 –

+0

@MR、スケジューラノードの推奨インフラストラクチャ構成はありますか。現在私は、56G RAMと16コアの2つのワーカーノードを持つ56G RAMのスケジューラを実行しています。 –

+0

一般的に、スケジューラはあまりRAMを必要とすべきではありません。理想的な条件下では、それほど多くのデータを処理しないシングルスレッドプロセスです。 – MRocklin

関連する問題