2015年03月12日

Apacheをチューニングする(ソース)

<検証環境>
OS : CentOS7.0(64bit) ※CentOS6.6以前、Apache2.2以前も基本、同じ手順となる。
ソフトウェア : サーバー(GUI使用)+開発ツール
Apache : 2.4.12(prefork)

(/opt/httpd/conf/extra/) httpd-default.conf を編集します。

プロパティ名プロパティ値デフォルト値説明
Timeout6060The number of seconds before receives and sends time out..
KeepAliveOffOnWhether or not to allow persistent connections (more than one request per connection)..
(Tomcat連携にも適用される。)
メモ :
・仮に、KeepAlive を On にした場合、Tomcat連携時にも、クライアントへのHTTPレスポンスヘッダには
 Keep-Alive: timeout=5, max=100
 Connection: Keep-Alive
 が含まれていた。また、proxy-ajp.conf に SetEnv proxy-nokeepalive 1 を指定しても同じ結果となった。
 なお、TomcatへのHTTPリクエストヘッダには
 Connection: Keep-Alive
 が含まれていた。また、Tomcat(Webアプリケーション)にて意図的に Keep-Alive を返却してはいない。
・KeepAlive を Off にした場合、Tomcat連携時にも、クライアントへのHTTPレスポンスヘッダには
 Connection: close
 が含まれていた。
 なお、TomcatへのHTTPリクエストヘッダには
 Connection: Keep-Alive
 が含まれていた。また、Tomcat(Webアプリケーション)にて意図的に close を返却してはいない。
・仮に、Timeout を 1(1秒) にした場合、
 (こまめにflushすることなどにより)無通信状態が 1秒間 を超えなければ、合計時間が 10秒 を超えても、エラー(Internal Server Error)は発生しなかった。
 ただし、ユーザマター(ファイルダウンロード時の"名前を付けて保存"ダイアログで長期待機など)でも、無通信状態は発生し得るため、Timeout を極端に短くすることは推奨しない。

また、(/opt/httpd/conf/extra/) httpd-mpm.conf を編集します。

プロパティ名プロパティ値デフォルト値説明
StartServers1005The StartServers directive sets the number of child server processes created on startup..
MinSpareServers1005The MinSpareServers directive sets the desired minimum number of idle child server processes..
MaxSpareServers10010The MaxSpareServers directive sets the desired maximum number of idle child server processes..
ServerLimit100256For the prefork MPM, this directive sets the maximum configured value for MaxRequestWorkers for the lifetime of the Apache httpd process..
MaxRequestWorkers(2.4)
↑ MaxClients(2.2)
100250The MaxRequestWorkers directive sets the limit on the number of simultaneous requests that will be served..
MaxConnectionsPerChild(2.4)
↑ MaxRequestsPerChild(2.2)
10000The MaxConnectionsPerChild directive sets the limit on the number of connections that an individual child server process will handle..
MaxMemFree7682048The MaxMemFree directive sets the maximum number of free Kbytes that every allocator is allowed to hold without calling free()..
2015.10.04
(各セクション毎の)AllowOverride
None
When the server finds an .htaccess file (as specified by AccessFileName), it needs to know which directives declared in that file can override earlier configuration directives..
(※"All"を指定すると大きくパフォーマンスがダウンするため必要最低限にすること。)
※ StartServers 100、MinSpareServers 100、MaxSpareServers 100、ServerLimit 100、MaxRequestWorkers 100 は、Tomcatの maxThreads・minSpareThreads に合わせて、適宜変更する。
※ MaxMemFree 768 は、Apacheへのメモリ配分に合わせて、適宜変更する。
メモ :
・Apacheの1サブプロセス毎に 約3.5MB を消費することを確認済み( ps -aux | grep [h]ttpd | grep [a]pache コマンドにて)。


posted by red at 00:52| Comment(0) | TrackBack(0) | CentOS:ミドルウェア | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック