ネットワークサーバの実装方式は,多重化I/Oや非同期I/OといったI/Oモデル,反復サーバ,並行サーバといったリクエストの処理方
式,fork,threadといった並行サーバの構成方法など,様々な方式が存在しています
[1].これまでApacheをはじめとする並行サーバによる実装がWebサーバ等で広く用いられてきましたが,クライアント数が1万台を超えるような
ケースで,必ずしも求める性能が得られないという「C10K問題」が認識されてからは,CPU上での処理切り替え(コンテキストスイッチ)の回数を低減できる,非同期I/Oと反復サーバを組み合わせて用いるアプローチが注目を浴びています.後者のアプローチはこれまで実装が複雑になるという点で敬遠されて
きましたが,イベント駆動ネットワークサーバ(多重化I/Oのものも含む)の普及により,比較的容易に高性能サーバが実装できる環境が整いつつあります.
本研究ではWebサーバをはじめ,大規模処理環境のバックエンドでも重要となるネットワークサーバの性能調査を実施し,リアルタイムコミュニケーションや
大規模分散処理に必要となる性能チューニングの手法について調査します. [1] W.Richard Stevens 著,篠田陽一訳,「UNIX ネットワークプログラミング <Vol.1> ネットワークAPI:ソケットとXTI(第2版)」,株式会社ピアソン・エデュケーション (1999). |