性能評価の目的
Webシステムの性能評価とは、システムが「どのくらいの負荷まで安定して動作するか」「ボトルネックはどこにあるか」を定量的に把握することです。定性的な感覚や経験則ではなく、データに基づいた判断を行うことが重要です。
主な目的は次の3点です。
- 本番リリース前の性能要件への適合確認
- 障害・性能劣化が発生した際の原因調査
- キャパシティプランニング(将来のリソース見積もり)
3ステップアプローチ
性能評価は次の3段階で進めます。「まず全体を見てから詳細を掘り下げる」トップダウン分析が基本の流れです。
STEP 1 — データ収集
- 各サーバーに SSH 接続
- mpstat / free / iostat / vmstat を同時実行
- アクセスログを保存
STEP 2 — データ分析
- 各メトリクスをしきい値と比較
- 時系列で傾向を把握
- 問題が起きた時刻を特定
STEP 3 — ボトルネック特定
- 問題のあるサーバーを絞り込む
- 原因リソースを特定する
- 改善策を立案・実施
まず全体から異常を探し、次に詳細を掘り下げる「トップダウン分析」が基本です。
対象サーバーの役割と注目ポイント
一般的な Web システムは Web サーバー → APL サーバー → DB サーバー の3層構成です。それぞれ役割が異なるため、注目すべきメトリクスも異なります。
WEB — Web サーバー
| 項目 | 内容 |
|---|---|
| 主な役割 | HTTP リクエストの受付・SSL 終端、静的コンテンツの配信、APL サーバーへのプロキシ |
| 注目ポイント | 同時接続数・レスポンスタイム、ネットワーク帯域、CPU 使用率 |
APL — APL サーバー
| 項目 | 内容 |
|---|---|
| 主な役割 | ビジネスロジックの処理、DB へのクエリ発行、動的コンテンツ生成 |
| 注目ポイント | CPU 使用率・メモリ使用量、処理スレッド数、GC(ガベージコレクション)頻度 |
DB — DB サーバー
| 項目 | 内容 |
|---|---|
| 主な役割 | データの永続化・検索、SQL クエリの実行、キャッシュ管理 |
| 注目ポイント | ディスク I/O(最重要)、メモリ(バッファプール)、CPU・ロック競合 |
トップダウン分析の考え方
性能問題を調査する際は「症状 → サーバー → リソース」の順に絞り込みます。最初から特定のリソースを深掘りすると、根本原因を見逃しやすくなります。
- アクセスログで「いつ・どの URL が遅いか」を確認する(出発点)
- vmstat でシステム全体を俯瞰し、問題のある層を絞り込む
- 絞り込んだ層の詳細ツール(mpstat / iostat / free)で原因リソースを特定する
全体から細部へ。この順序を守ることで調査の迷走を防げます。