2012-02-05 3 views
0

ウェブサーバソフトウェア(nginx、apache、mongrel、それは問題ではありません)のインスタンスがたくさんあるところでは、サーバごとにを実行する(Rails | Java | PHP | Node.js | nginx | etc ..)であり、単一の「巨大な」インスタンスの代わりに同じアプリケーションを提供します。ノードごとに多くのwebserversインスタンスを実行するのはなぜですか?

なぜこのようなアプローチを選択しますか?同じアプリケーションを扱うより小さなインスタンスが、使用可能な最大のラムとスレッドを使用するように調整された1つのインスタンスよりも優れている理由はわかりません。

自分自身を明確にする、私はしばしばのような文を参照してください「...我々は<いくつかのウェブサーバ>の20個のインスタンスごとに実行している、10台のサーバを持っています」。なぜ "10サーバー、1つのインスタンス<いくつかのWebサーバー>を実行していない"?

答えて

2

複数のCPUコアを利用するシングルスレッド(node.jsやmongrelなど)の場合にのみ、複数のWebサーバーインスタンスを実行することは意味があります。

+0

実際、それは結局意味がありません。 –

1

イベントベースのマルチスレッドサーバーは、スレッドごとに多くの要求を処理できるという利点を兼ね備えています。同時に、使用可能なすべてのCPUコアを使用できるようになりました。システム。

CPUコア以外にも、1つのプログラムインスタンスを多数持つのではなく、メモリ(重複したコードとデータ)とCPUキャッシュを一定のゴミから守ります。

関連する問題