Apacheプロセス増加について
Apacheプロセス増加について Apacheのプロセス増加について調べる機会があったので、記載しておきます。 Apacheサービスを起動した際に、いくつプロセスを起動させておくかは、 httpd.confの StartServersで決まる。 例えば、StartServers=5となっていれば、メインプロセス1と待機プロセス5が立ち上がり、 計6つのhttpdプロセスが動いている。ps ax|grep ‘httpd’とコマンドを打てば、確認できる。 次に、設置したHPにアクセスした動きとして、 例えば、index.htmlのなかに、画像タグが10個記載されていたとする。 そのindex.htmlをブラウザでアクセスすると、 Apacheとブラウザの動きとして、 index.html 画像1 画像2 画像3 画像4 ・・・ 画像10 と、リクエスト数としては、11個のリクエストが発生する。 11個のリクエストを6つのプロセスで処理することになる。 例えば容量の大きい画像であれば、1つのプロセスを占有してしまうため、別プロセスを起動し、並列に処理しようと する。そのため、6つのプロセス+5つのプロセスが起動され11プロセスとなる。(こんなに単純じゃないけど) 逆に、容量が小さい画像で、処理時間も短いものであれば、1つのプロセスで3,4個のリクエストを処理できた とすれば、httpdプロセスは増加せずに6プロセスのままとなる。 あと、気を付けたい設定はKeepAlive。 KeepAliveは、リクエストを受けてすぐに切らず数秒待機してレスポンスよくしたい場合に使いますが、 — KeepAlive HTTP の持続的な接続を有効にします。(On/Offで設定します) KeepAliveTimeout KeepAlive=On の時に有効で、持続的な接続で次のリクエストが来るまでサーバが待つ時間(秒)を設定します。 MaxKeepAliveRequests KeepAlive=On の時に有効で、持続的な接続上で許可されるリクエストの数を設定します。 — 待っている間は他のリクエストを処理できないので、結果として別のプロセスが起動してしまいます。 つまり、プロセス増加の要因になりえます。 一概に言えませ
コメント