接続の持続やプロセス数を制御し、サーバの処理性能・リソース消費をチューニングするディレクティブ群。
多くは MPM(Multi-Processing Module) に関わる。
KeepAlive・タイムアウト系
1回のTCP接続を使い回して複数リクエストを処理する仕組み(KeepAlive)。接続の確立/切断コストを減らせる。
- KeepAlive on|off … 持続的接続を使うか否か。
- MaxKeepAliveRequests … 1接続で受け付ける最大リクエスト数。0で無制限。
- KeepAliveTimeout … 持続的接続で「次のリクエスト」を待つ最大秒数。これを過ぎると接続を切断する。
- Timeout … リクエスト受信〜レスポンス完了までの処理全体の最大秒数。KeepAliveとは独立(KeepAlive off でも効く)。
関係:
KeepAlive onが大前提 → その上で「何回まで(MaxKeepAliveRequests)」「何秒待つか(KeepAliveTimeout)」を決める。
紛らわしい3つの切り分け:処理完了までの上限=Timeout/次リクエストの待ち=KeepAliveTimeout/受付回数の上限=MaxKeepAliveRequests。
プロセス/ワーカー管理系
子プロセスをいくつ起動・待機・上限とするかを制御。
- StartServers … 起動時に立ち上げる子プロセス数。
- MinSpareServers … 待機(アイドル)子プロセスの最小数。これを下回ると増やす。
- MaxSpareServers … 待機子プロセスの最大数。これを超えると減らす。
- MaxRequestWorkers … 同時に処理できるリクエストの最大数(=子プロセスの最大数)。同時接続数の上限を決める重要パラメータ。
- MaxConnectionsPerChild … 1つの子プロセスが処理するリクエスト数の上限。これに達すると子プロセスを破棄・再生成する(メモリリーク対策)。0で無制限。
名称変更(旧名 → 新名)
バージョンアップで名前が変わったものはひっかけで狙われる。
| 旧名 | 新名 | 変更時期 |
|---|---|---|
| MaxClients | MaxRequestWorkers | Ver 2.3.13 |
| MaxRequestsPerChild | MaxConnectionsPerChild | Ver 2.3.9 |
覚え方:「Clients(クライアント)→ Workers(ワーカー)」「Requests → Connections」。新しい方が処理の実体(ワーカー/コネクション)に即した名前になっている。
旧名は後方互換のエイリアスとして残存(非推奨)。設問がバージョンを明示しない場合は現行名(新名)が正解。