2

フォアマンの設定からユニコーンの労働者の数を設定するまでの間、私はちょっと立ち往生しています

web: bundle exec unicorn -p $PORT -c ./config/unicorn.rb

それから走りながらforeman start -c web=16

または設定するだけでユニコーンworker_processes 16

foreman start -c web=8持っている間に設定worker_process=2すると、これは合計16回実行されることを意味します

それは単なる好みですか、それとも私が理解できない何かがありますか? 誰かこれを説明してくれませんか。

4

1 に答える 1

3

foreman start -c web=16 は fork ごとに 16 個のマスター unicorn プロセスを開始しますが、デフォルトでは多くのワーカー プロセスが設定されています。

foreman start -c web=1 while worker_processes を 16 に設定すると、16 個のワーカー プロセスをフォークする単一のマスター ユニコーン プロセスが開始されます。

主な違いは、誰にプロセスを制御させるかです。ユニコーン マスター プロセスは、フォークされたプロセスを追跡し、クリーンアップと再起動のためにいつハングしたかを知るという考えに基づいて構築されています。フォアマン プロセスは、マスター ユニコーン プロセスについてのみ認識し、マスター ユニコーン プロセスによってフォークされたプロセスは認識しません。

ユニコーン ラック サーバーは、実行中の複数のプロセス (たとえば 4 つのシン サーバー) を置き換えるために特別に構築されており、代わりに単一のマスター プロセスを実行し、フォークされたワーカー プロセスの管理を処理させます。これにより、1 つのプロセスが、ラック アプリケーションにサービスを提供する他のすべてのプロセスを認識することができます。

簡単に言えば、単一のユニコーン プロセスを実行し、構成ファイルにワーカーの数を追加します。職長にやらせてはいけません。

于 2013-03-16T22:08:44.380 に答える