負荷テストによる検証

 システムが完成に近づいたら,実際に負荷をかけて,選んだネットワーク帯域やサーバー機が適切だったかどうかを確認したい。以下では,「同時リクエスト数の上限が100件/秒で,レスポンス時間が10秒以内」というパフォーマンス要件を満たしているかどうかの検証方法を説明する。

 実際にWebシステムに負荷を与えるテストで利用するのが「負荷テスト・ソフト」である。このソフトは,同時に複数のリクエストを送信する機能と,レスポンス時間やスループット,サーバー機のリソース(CPU,メモリー,ディスク入出力)使用量を計測する機能などを備えている(図1)。

図1●負荷テスト・ソフトの仕組み
図1●負荷テスト・ソフトの仕組み
負荷テスト・ソフトは,あらかじめ作成したテスト・ケースとシナリオに基づいて同時に複数のリクエストを送信する機能と,そのリクエストに対するレスポンス時間やサーバー機のリソース使用量などを計測する機能で構成される
[画像のクリックで拡大表示]

 パフォーマンスを検証するには,負荷テスト・ソフトで収集したデータを解析する。具体的には,横軸に同時リクエスト数,縦軸にレスポンス時間の値をとるグラフを作成する(図2)。グラフにはパフォーマンス要件を破線で示す。このグラフから,同時リクエスト数が100件のときのレスポンス時間は10秒を下回っていることが見て取れるので,パフォーマンス要件を満たしていると言える。

図2●負荷テストの結果を分析
図2●負荷テストの結果を分析
負荷テストの結果(同時リクエスト数を増加させたときのレスポンス時間の変化)をグラフ化し,レスポンス時間や同時リクエスト数の上限といった要件を満たしているかどうかをチェックする

 負荷テストの結果,パフォーマンス要件を満たさなければ,ボトルネックを特定してリソースの増強を図ったり,アプリケーションをチューニングしたりする。実施後に再度,負荷テストで結果を確認する。

 負荷テスト・ソフトで収集したデータは,パフォーマンス要件を満たしたかどうかを確認するためだけでなく,キャパシティを増強するタイミングの見極めにも使える。グラフの同時リクエスト数が140件のところを見てほしい。そこを境にレスポンス時間は急激に長くなることから,そこがシステムの限界値と言える。キャパシティを増強する場合は,同時リクエスト数が140件に達する前に実施しなければならないと判断できる。キャパシティの増強は,パフォーマンス上のボトルネックを確認し,その部分のリソースを増やすことで実施する。具体的には,リソース使用量を調査し,CPU,メモリー,ディスク入出力などのリソースのうち,どれを使い切っているかを見極める。

高安 厚思(たかやす あつし) オープンストリーム テクニカルコンピテンシーユニット 主管システムズアーキテクト
銀行系シンクタンクでオブジェクト指向技術の研究に携わった後,大手SI業者でアーキテクチャ構築やプロセス研究を担当。現職ではSOA(Service Oriented Architecture)を中心とする研究開発とアーキテクチャ構築に従事している