1
短期間に大量のタスクが送信された場合、daskスケジューラが強制終了されますが、メモリエラーが発生します。daskクラスタに現在のタスク数を取得するためのdask apiはありますか?
クラスタ上で現在のタスク数を取得することができれば、クラスタに送信された並行タスクの数を簡単に制御できます。
注:タスクは、複数のクライアントから同じスケジューラに送信されています。
短期間に大量のタスクが送信された場合、daskスケジューラが強制終了されますが、メモリエラーが発生します。daskクラスタに現在のタスク数を取得するためのdask apiはありますか?
クラスタ上で現在のタスク数を取得することができれば、クラスタに送信された並行タスクの数を簡単に制御できます。
注:タスクは、複数のクライアントから同じスケジューラに送信されています。
スケジューラで任意のPython関数をclient.run_on_schedulerメソッドで実行できます。
これを使用すると、scheduler stateのいずれかを見ることができます。
client.run_on_scheduler(lambda dask_scheduler: dask_scheduler.tasks)
スケジューラが何百万というタスクを処理できることに注意してください。これに近いところにいるなら、おそらくDaskをどのように使用しているのか考え直すべきでしょう。最適なパフォーマンスを得るには、数百ミリ秒以上かかるタスクを選択する必要があります。
ご返信いただきありがとうございました。 –
@MR、スケジューラノードの推奨インフラストラクチャ構成はありますか。現在私は、56G RAMと16コアの2つのワーカーノードを持つ56G RAMのスケジューラを実行しています。 –
一般的に、スケジューラはあまりRAMを必要とすべきではありません。理想的な条件下では、それほど多くのデータを処理しないシングルスレッドプロセスです。 – MRocklin