いつでもgemを使用してrakeベースのcronタスクを呼び出していますが...タスクが実行されると、サイト全体(NginxのPassenger)がタスクの実行中に応答を停止します。
これらの rake タスクの負荷を制御して、サーバーのパフォーマンスを軽減する方法はありますか?
いつでもgemを使用してrakeベースのcronタスクを呼び出していますが...タスクが実行されると、サイト全体(NginxのPassenger)がタスクの実行中に応答を停止します。
これらの rake タスクの負荷を制御して、サーバーのパフォーマンスを軽減する方法はありますか?
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"
少ない情報ですが、参考までに:
rake
すると、Rails スタック全体がロードされます。その負荷を処理できるシステムがあることを確認してください。rake タスクを実行するとメモリ使用量はどうなりますか?実行するレーキ タスクが大量の CPU やメモリを消費している場合は、スケールアップを検討する必要があります。RAM/CPU コアを追加して垂直方向に行うか、別のマシンで rake タスクを実行して水平方向に行うかのいずれかです。