web-dev-qa-db-ja.com

これだけ多くのApacheインスタンスは正常ですか?

この質問 と尋ねて判断したように、2.2.8-1ubuntu0.15のVPSインスタンスでApacheバージョンUbuntu 8.04.4 LTS \n \lを実行します。

pgrep Apache2を発行すると、次のようになります。

 2691
24517
25330
25669
25672
25795
25796
25809
25825
26401
26402

これは、Apache2の11の個別のインスタンスです!これは正常ですか?そうでない場合、私はそれについて何をすべきですか?

はい。 Apacheは、従来のunixデーモンのように機能します。

  • メインプログラムは着信要求を待機します(ソケット上のブロック)
  • リクエストを受信した後、fork()システムコールが使用されます。これにより、メインプロセスはそれ自体のクローンを作成します。
  • その後、メインプロセスは別の要求を再度待機します
  • フォークされたコピーは要求の処理に進み、終了します

フォークには時間がかかるため、Apacheは複数のリクエストの処理を見越していくつかのインスタンスをプリフォークします。これは/etc/Apache2.confを介して完全に構成可能です。現時点では正確なディレクティブを考えることはできませんが、おそらくコメントで説明されています。

同時HTTPリクエストの突然のバーストを処理することが予想される場合は、それらを受け取るために多くのインスタンスを待機させると便利です。トレードオフは、これがより多くのメモリを消費することです。

5
ultrasawblade

この数を減らす場合は、MinSpareServersおよびMaxSpareServersディレクティブを使用してください。

http://httpd.Apache.org/docs/2.2/mod/prefork.html

2
Rob Olmos