「Webシステムが抱える性能面の問題のうち,負荷テストでつぶせるのは一部に過ぎない。運用フェーズに入ってから,画面応答の遅延や応答不全といったユーザーが直面する障害を監視することにより,負荷テストで取りこぼした問題にも迅速に対処できる」。エンピレックスの浦口宗也氏(OneSightソフトウェアグループ 営業・技術マネージャ,写真)は開発者向けイベント「XDev2009」のセッション「開発から運用へ 性能問題の撲滅に向けた“最適”アプローチ」の講演で,こう述べた。
一般にWebシステムの負荷テストでは,ネットワーク性能とアプリケーション性能の検証を行う。ネットワーク性能の測定では,データリンク層(レイヤー2)にとどまらず,トランスポート層(レイヤー4)以上の,実際に使用する通信プロトコルの大量トラフィックを流すことが大切だと強調した。「HTTPによる通信では,パケット再送などの処理が複雑なので,レイヤー2ベースのテストからではボトルネックの有無をつかめない」からだ。
一方,アプリケーション性能検証では,クライアントやWebサーバー,アプリケーション・サーバー,DBサーバーといったシステムの稼働要素それぞれの性能を計測する。ポイントは,テスト・シナリオを主要なものに絞ることにあるという。「検証結果を基にボトルネックの所在を推察し,対処策を講じ,効果があったか確かめるため再検証する,という一連のサイクルを回すのには,時間が長くかかる。テスト・シナリオを欲張りすぎると,深刻な問題が埋もれてしまいやすい」ためである。
こうした負荷テストによって改善を図れる性能問題は,(1)並列処理要求による内部リソースの競合と,(2)制約によって狭められたスループットの限界にとどまるという。そして,負荷テストで取りこぼした問題や,データ・ボリューム肥大化など運用フェーズで発生する性能問題については,適切な監視をすることによって,浮き彫りにするのが現実的だと主張した。性能にまつわる障害を見逃さないようにするには,「サーバーの負荷状況やテーブルの空き領域,接続数といったサーバー側の状況を把握するだけでは不十分。画面遷移の時間などユーザーが体感する“サービス・レベル”の監視が不可欠だ」。
最後に,Webシステムの性能を統合監視する同社のツール「OneSight」では,サービス・レベルが低下すると管理者に自動的にメールが送付され,メール本文に記されたリンクをたどることで問題の具体的な内容や解決のヒントが得られる様子を示した。