Unicornの下でRuby on Rails Webアプリを実行しています。私たちのアプリは厳密にはCPUバウンドではありません(デュアルXeon E5645システムw / 12コアがあり、ピーク負荷平均値は約6です)。最初は40人のUnicornワーカーで開始しましたが、アプリケーションのメモリフットプリントは時間とともに増加しました。そのため、ワーカープロセスの数を減らす必要があります。標準(CPUコアの数+ 1)の式はUnicornにも適用されると思いましたが、同僚はCPUごとにさらに多くのUnicornインスタンスを予約する必要があると私に納得させ、このリンクを提供しました。しかし、アイドル状態のUnicornプロセスにこれほど多くのメモリを費やす必要があるのはなぜか、はっきりとはわかりません。
私の質問は、CPUコアごとに複数のUnicornインスタンスを持つ理由は何ですか?これは、ユニコーンの建築上の特殊性によるものですか?忙しいUnicornプロセスは新しい接続を受け入れられないことは承知しています(UNIXドメインソケットを使用して、UnicornインスタンスBTWと通信しています)が、これに対処するためにバックログが正確に導入されたと考えました。CPUルールごとにこの2〜8個のUnicornインスタンスを克服することは可能ですか?