こんにちはフロントエンドエンジニアのまさにょんです!
今回は、Apacheのタイムアウト(Timeout)やリクエストの最大数を拡張・設定する方法について解説していきます。
今回の実装Sampleでは「httpd.conf」に設定をしていきます。
目次
Apacheのタイムアウト(Timeout)やリクエストの数を拡張する
Apacheでは、データ送受信時の待ち時間 (Timeout)を秒単位で設定することができます。
また、1つのTCPコネクションを使用して複数のHTTPリクエストを処理するように設定することもできます。
上記のようなApacheのパフォーマンス・チューニングをすることで、処理が高速化することができるので、ぜひ導入してみましょう。
Sampleの設定値は、次のとおりです。
httpd.conf に以下を追加して、Apache再起動すれば反映されます。
それぞれの設定値に関しては、1つずつ解説します。
### TimeOut-Config ###
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
Timeout: データ送受信時の待ち時間を秒単位で設定する
Timeout では、データ送受信時の待ち時間を秒単位で設定します。
対象は、次のような処理のタイムアウト値で、デフォルト値は60秒です。
- クライアントからのHTTPリクエスト受信時のTCPパケット受信待機時間
- クライアントへのHTTPレスポンス送信時のTCPパケット送信(相手からACKを受信するまでの)待機時間
- モジュール(mod_xxx)の処理待機時間
KeepAlive: 複数のHTTPリクエストの接続・処理を有効または無効に設定する
KeepAlive では、1つのTCPコネクションを使用して複数のHTTPリクエストを処理することができます。
WordPressで作成するWebサイトなどでは、複数の画像ファイルやCSSファイルを同時に読み込みWebページを生成しています。
上記のようなHTTPリクエストの多いWebサーバーでは、KeepAlive を On にすることで Apache の性能が向上します。
MaxKeepAliveRequests: 1 回の接続 (TCP) で受付を許容するリクエストの最大数を指定する
MaxKeepAliveRequests では、KeepAlive ディレクティブが On の時、1 回の接続 (TCP) で受付を許容するリクエストの最大数を指定できます。
一度に処理できる最大リクエスト数を示すMaxKeepAliveRequestsは、100程度を指定しておけば不足することはありません。
KeepAliveTimeout: TCPコネクションを維持し続ける最長時間(秒)を指定する
KeepAliveTimeout では、TCPコネクションを維持し続ける最長時間(秒)を指定します。
この期間は、1つのTCPコネクションで複数のHTTP通信が行えます。
一般的には数秒程度を指定します。
サーバーがHTTPリクエスト受け付けると、KeepAliveTimeout の期間TCPコネクションが保持され続けます。
大きな値を指定すると、大量のクライアントから同時接続があった際にTCPコネクションが不足する恐れがあるので注意が必要です。
Twitterやってます!Follow Me!
神聖グンマー帝国の逆襲🔥
神聖グンマー帝国の科学は、世界一ぃぃぃぃぃぃ!!!!!