2012-02-20 1 views
3

私はこの一見単純な質問に対する答えを見つけるのに苦労しています。単一のApacheプロセスは何を処理しますか? 1人の訪問者からの1つのリクエストですか?訪問者がダウンロードする各アセット(画像、CSSファイルなど)は、個別のApacheプロセスを必要としますか?1つのApacheプロセスが正確に何をしていますか?

ありがとうございます!

答えて

3

Apacheの "prefork MPM"を使用しているため、構成によって決定されるいくつかの子プロセス( "Servers")が生成されます(StartServersは起動時に開始する子プロセスの数を決定します) MaxClientsは、要求を処理するために起動される子プロセスの最大数などを決定します。各サーバーは複数の要求を処理できるため、各アセットは個別のプロセスを必要としません。設定MaxRequestsPerChildは、サーバーの有効期間を決定します。この値を0に設定すると、子プロセスが期限切れにならないことを意味します。多くのリクエストがある場合は、KeepAliveをオンに設定して、同じ接続を使用して複数のリクエストを処理することもできます。

+0

ありがとうございます...非常に役に立ちました。 「各サーバーは多数の要求を処理できます」と言えば、同時にそれとは対照的に、順番にそれを意味していると思います。 –

+0

うん、シーケンシャル。それぞれの子供は、それがうまくいっていく要求のキューを持っています。 MaxRequestsPerChild Xを設定した場合、その子はサービスX要求後に期限切れになります。並行性は、より多くのサーバーを起動することによって達成されます。あなたは別の*実際のサーバーに負荷をダンプする方が良いでしょう。 S3/Cloudfrontを介してすべてのリソース/アセットリクエストをプッシュするように、アプリケーションサーバーは主にアプリケーションリクエストを処理します。少ないメモリ。 – typeoneerror

+0

パーフェクト、意味があります。再度、感謝します! –

関連する問題