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 の時に有効で、持続的な接続上で許可されるリクエストの数を設定します。

待っている間は他のリクエストを処理できないので、結果として別のプロセスが起動してしまいます。
つまり、プロセス増加の要因になりえます。
一概に言えませんが、リクエストが多いサーバはリソース消費も考え、KeepAlive offがよいと思います。

あと、気をつけたいのが、カスタム404エラー。
きれいな404エラーページをつくったつもりで、404ページ上、さらに404が発生していると、
確実にループし、サーバーダウンします。





コメント

ドメインサーチ

https://www.makko.biz/whois/?q=bg.bahaiquotesillustrated.info

このブログの人気の投稿

wgetでsitemap作成

ApacheでSSL自己証明書作成(オレオレ証明書)