2017-03-22 7 views
1

私は3人のリモートワーカーを持っています。それぞれはデフォルトプール(プリフォーク)とシングルタスクで稼動しています。それは、多くの異なるツール上で動作し、ELKにデータベースを挿入してセロリーでprefork、eventlet、またはgeventを使用するプールクラスはどれですか?

つのタスクを完了するために2〜5分を取っています。

ワーカーコマンド: セロリ-Aプロジェクトワーカー-l情報私はより高速な処理を行うために使用する必要があり、プールクラス

パフォーマンスを改善するための他の方法はありますか?

+0

を持っている場合の素敵な使用あなたは上の3つすべてをテストする必要がありますrジョブを使用し、最適なものを使用してください。 –

答えて

4

この質問がスクロールして面白いです。

イベントレットからgeventに切り替えたばかりです。イベントレットは、最終的にワーカーを停止させたブローカー接続をハングアップさせました。

一般的なヒント:

  • あなたがI/Oバウンドしている場合、私は、25で始まるCPU負荷をチェックして、そこから微調整のための99,9%のCPU使用率を目指します高い並行性を使用しますプロセス。
  • あなたは--without-ゴシップとあなたの従業員が成長した場合に--without-付き合うを使用する場合があります。
  • 結果バックエンド(redis ftw!)としてRabbitMQを使用しないでください。しかし、ブローカーに関しては、RabbitMQが最初の選択です(redisのamqpエミュレーションとセロリのハッキーなasync-redisソリューションは臭いがあり、私たちの過去の悲しみの多いです)。チューニングする

より高度なオプションあなたのセロリの労働者は:周りのプロセスを動かすのオーバーヘッドを回避する一つのコアに

  • ピン各ワーカー・プロセスを(タスクセットはあなたの友達です)
  • 1であれば作業員は、常に1つのまたは2つの他のプロセスとコア共有を考慮し、動作していない、一つのプロセスが優先
関連する問題