コネクション棄却率と応答時間
データから最適な設定を考える
「第2回:コネクション受付制御のパラメータ(http://www.thinkit.co.jp/article/118/2/)」は、Webサーバー構築ソフトウェアApacheにおいて、ユーザーの要望(確実なコネクションの確立、迅速な応答)に応えるための代表的な設定項目として「MaxClients」および「KeepAlive」の説明を行い、それぞれの設定が密接に関係していることについて説明した。
最終回となる今回は、「KeepAlive」や「MaxClients」の設定を考えるとき必要であるWebサーバーの転送ファイルサイズ、新規クライアントとリクエストの到着について過去の研究結果から考察する。そして最後に、到着リクエスト数増大による棄却率や応答時間への影響について説明する。
Webサーバーの転送ファイルサイズ
クライアントからのファイル転送要求に対し、Webサーバーが転送するファイルの大きさは、ネットワークやサーバーの負荷に大きな影響を与える。つまり、ユーザーへの応答時間や棄却率を考えるとき、検討すべき重要な要件の1つであると言える。
転送ファイルサイズの大きさは、過去に行われた測定データの分析によると、一般的なWebサーバーにおいて、共通した特徴を有していることが明らかにされている。一般的な分布特性を図1に示す。
図1からわかることは、まず、小さいファイルの割合が非常に大きいことである。小さいファイルとは、HTMLファイルや画像ファイルなどのことであり、一般的なWebページの大部分がこのようなファイルにより構成されていることを表している。
次に、すそが非常に長くなっており、大きなファイルの転送も無視できないことである。写真データや音声・動画ファイル、マニュアルのファイルなどが、これら大きなファイルに該当するものと考えられる。
もっとも、これらの特徴はWebサイトごとに多少異なる。例えば、テキストデータを中心としたWebサイトでは、小さいファイルの割合がもっと大きくなり、反対に動画像を配信しているWebサイトでは、大きなファイルの転送が占める割合が大きくなる。
しかし、過去のさまざまな研究によると、傾向に大きな変化はないことが報告されており、この傾向を知ることは非常に重要である。
以上で説明した一般的な特性から、Apacheの設定をどのように考えればよいのかを検討する。まず、小さなファイルの転送が頻繁に行われることから、KeepAliveをあまり小さくしすぎてはいけない。1つのWebページに含まれるファイルの転送要求ごとにコネクションの確立・解放を繰り返してしまうからである。過去の研究から約1秒が妥当であると報告されている。
また、大きなファイルの転送については、発生頻度が少ないことから、コネクションの確立・解放による影響は小さい。しかし、長期間のファイル転送は、転送期間中、ネットワークやサーバーに負荷をかけることになる。よって、Webサーバーを過負荷状態にしないために、同時接続数を制限するMaxClientsの調整が不可欠であり、サーバーの処理能力やネットワークの帯域を考慮し、必要以上に大きくしすぎないことが重要である。
次は、Webサイトに訪れたユーザーの挙動の特性について考える。