本研究では、静的・動的コンテンツ配信をおこなうWebアプリケーションサーバの内の挙動を監視し、
その動作情報をもとにしたWebサーバの動的なパラメータチューニングをおこなうシステムの設計、および実装をおこなった。
近年、インターネットの利用者数の増加にともない、Webサーバが安定したサービス供給をおこなう必要性が高まっている。
こうした背景から、Webサーバの管理者は、サーバのパフォーマンスをあげるためのチューニングを重視する傾向がある。
しかし、管理者によるWebサーバのチューニングには、サーバの負荷状況の取得や分析、
そしてパラメータ変更後のパフォーマンス検証といった作業を複数回繰り返す必要がある。
また、Webサーバへの負荷は一定ではなく変化するために、高いパフォーマンスを維持するためには、
1度のチューニング作業で対応しきれないこともある。本研究で作成するシステムでは、
このようなWebサーバのチューニング作業を自動的におこなうものである。
また、変化するWebサーバへの負荷に対応した動的なチューニングをおこない、サーバ管理者の作業負担を減らすのが目的である。
本システムのチューニング対象のサーバはApache2.0系である。チューニングをほどこすパラメータは、
サーバとクライアントのコネクションに関するKeepAliveTimeoutパラメータと、
サーバの子プロセス数に関するMaxClientsパラメータの2つである。
本システムは、サーバへの変化する負荷に応じたチューニングをおこなうために、
サーバの動作情報をリアルタイムに取得する必要性がある。
よって、本システムをApacheモジュールとして実装し、内部からApacheサーバの処理フェーズに介入することで、
Apacheの動作情報をリアルタイムに取得することが可能となった。このように取得した動作情報をもとに2つのパラメータチューニングをおこなう。
本システムを使用した評価実験をおこなった結果、コネクションに関するパラメータのチューニングでは、デフォルトの設定値で稼動しているWebサーバよりもスループットが向上した。サーバの子プロセスに関するパラメータのチューニングでは、サーバのメモリ不足を緩和することができた。
[pdf]