使用する必要のあるワーカーの数は、アプリ自体が実行していることと、アプリがそれらのことを実行している頻度によって大きく異なります。残念ながら、すべてのテストケースで機能する完全な比率式はありません。これは、サーバーをオンにしておく必要のあるRAMの量が限られているという事実を考慮すると、さらに当てはまります。
多くの人がCPUコア数+1を提案しますが、それも正しくありません。さまざまな量の労働者がいるテストケースを実行し、状況を確認する必要があります。定期的にログを確認してください。
私たちのチームでは、Nagiosと呼ばれるプログラムを使用しています:http://www.nagios.org
それはうまく機能し、起こっている可能性のある多くの異なることについてサーバーをチェックし、それらに警告することさえできます。これは、完璧なバランスを見つけようとするときに大いに役立ちます。
また、Railsインスタンスを実行するだけでなく、サーバーが実行していることがある場合もあります。スクリプトを実行したり、不要な情報を処理したりする場合もあります。サーバーが実行する必要のないことを実行していないことを確認してください。そうすることで、多くのCPUサイクルとRAMを可能な限り節約できます。
また、Unicornが持っているこの機能を実装していることを確認してください。私たちはプロジェクトで実行しており、非常に貴重です。
メモリの増加作業者がメモリを使いすぎると、神または監視者はそれにQUIT信号を送信できます。これは、現在のリクエストを終了した後にワーカーに死ぬように指示します。労働者が死ぬとすぐに、マスターは即座に要求に応えることができる新しいものをフォークします。このようにして、リクエストの途中で接続を切断したり、起動時のペナルティを科したりする必要はありません。-取得元:https ://github.com/blog/517-unicorn
私はまた、あなたにいくつかの洞察を与えることができるこの同様の質問を見つけました:
https://serverfault.com/q/369811/110682
それがお役に立てば幸いです。