
228
チューニング
負荷テストを実施した結果、レスポンスやスループットが性能目標値
に達しない場合はチューニングが必要となります。チューニングはサー
バーやミドルウェアの設定で済む場合もあれば、SQLやプログラムの
修正などアプリケーションの改修を伴う場合もあります。
単機能性能テストとは異なり、負荷テストの場合は問題箇所の特定は
一筋縄ではいきません。各サーバーやミドルウェアで取得したメトリク
スを並べてにらめっこしながら、仮説を立てては潰しを繰り返す仮説検
証型のアプローチによる問題解決が必要です。
まずはサーバー単位のCPU使用率を確認し、大きなレベルでの問題
切り分けを行うのが定石でしょう(図 5.3.4)。
⹅
図5.3.4
負荷テストのボトルネック調査
CPU 使用率
(AP サーバー)
CPU 使用率
(DBサーバー)
ボトルネックの例
低い 高い
・ 特定の非常に遅いSQLによってDBサーバーに高負
荷がかかっている
・ 単体では遅くないSQLが多数実行されることで、
全体としてDBサーバーに高負荷がかかっている
高い 低い
・ 多重ループ構造のロジックで必要以上に処理が繰り
返されることでCPU 使用率が上がっている
低い 低い
・ スレッドプールの上限値が低いため、スレッド待ち
が発生している
・ コネクションプールの上限値が低いため、コネクシ
ョン待ちが発生している
・ アプリケーション内の何らかの排他制御によってロ
ック解放待ちが発生している
DBサーバーがボトルネックの場合は、単機能性能テスト時と同様に
SQLの実行情報を取得します。AP ...