2

いつでもgemを使用してrakeベースのcronタスクを呼び出していますが...タスクが実行されると、サイト全体(NginxのPassenger)がタスクの実行中に応答を停止します。

これらの rake タスクの負荷を制御して、サーバーのパフォーマンスを軽減する方法はありますか?

4

2 に答える 2

3

config/schedule.rb 内の「whenever」gem を使用すると、rake タスク定義をオーバーライドして、rake が実行される前に「nice -n 19」コマンドを追加し、低優先度で実行することができます。

job_type :rake, "cd :path && RAILS_ENV=:environment nice -n 19 bundle exec rake :task --silent :output"
于 2011-10-21T23:14:41.497 に答える
1

少ない情報ですが、参考までに:

  • 実行rakeすると、Rails スタック全体がロードされます。その負荷を処理できるシステムがあることを確認してください。rake タスクを実行するとメモリ使用量はどうなりますか?
  • あなたのレーキタスクは何をしますか? アプリから URL を呼び出して、ブロックすることはありますか?

実行するレーキ タスクが大量の CPU やメモリを消費している場合は、スケールアップを検討する必要があります。RAM/CPU コアを追加して垂直方向に行うか、別のマシンで rake タスクを実行して水平方向に行うかのいずれかです。

于 2011-10-21T14:23:22.410 に答える