① アクセスログ(Access Log)— Web サーバー
アクセスログはユーザーからのリクエストを時系列で記録したファイルです。いつ・どの URL に・何秒かかったかが確認でき、性能評価の「起点」となる最重要データです。
主要フィールド
| フィールド | 内容 |
|---|---|
| 日時 | リクエスト発生日時 |
| クライアント IP | アクセス元 IP アドレス |
| ステータスコード | 200=正常、5xx=エラー |
| 処理時間(秒) | 最重要!遅延の検出に使用 |
チェックポイント
- ⚠ レスポンスタイム 3 秒以上のリクエスト数
- ⚠ エラー率(5xx の割合)1% 以上
- ⚠ リクエストが集中している時間帯・URL
コマンド例(Apache / Nginx)
# ログをコピーして保管
sudo cp /var/log/httpd/access_log \
./perf_data/access_$(date +%H%M).txt
# 処理時間フォーマット確認
head -3 /var/log/httpd/access_log
② mpstat — CPU 使用状況(全サーバー)
CPU が何の処理に使われているかをコア単位・カテゴリ別に % で表示します。全サーバーで取得します。
コマンド
mpstat -P ALL 5 12
# -P ALL : 全コアを表示
# 5 : 5秒間隔
# 12 : 12回繰り返し(合計1分)
主要フィールドと判断基準
| フィールド | 意味 | 注目ポイント |
|---|---|---|
%usr |
ユーザー空間での CPU 使用率 | アプリ処理量の指標 |
%sys |
カーネル空間での CPU 使用率 | 高い場合はシステムコール多発を疑う |
%iowait |
I/O 完了待ち時間の割合 | 10% 超えたら要注意(DB サーバー) |
%idle |
CPU の空き時間 | 20% 未満が続く場合は CPU 飽和の恐れ |
③ free — メモリ使用状況(全サーバー)
メモリ(RAM)とスワップ領域の使用状況を表示します。メモリ不足はシステム全体の急激な性能低下を招きます。
コマンド
free -m
# -m : メガバイト単位で表示
# 5秒間隔で繰り返す場合
while true; do
echo "--- $(date +%H:%M:%S) ---"
free -m
sleep 5
done >> free.txt
⚠ 見方の3つのポイント
1. 「free」列だけで判断しない
OS のバッファ・キャッシュ領域は随時解放されるため、「free」が少なくても問題ない場合がある。
2. 「available」列を重視する
新プロセスが使える実質的な空きメモリ。総量の 10% 未満が続く場合は要注意。
3. スワップが増加したら危険信号
スワップ I/O(si/so)が発生すると CPU に関係なく全体が急激に遅くなる。
④ iostat — ディスク I/O 状況(特に DB サーバー)
ディスクの読み書き性能を計測します。DB サーバーの I/O 性能はシステム全体に直結するため、最も重要なメトリクスのひとつです。
コマンド
iostat -xz 5 12
# -x : 拡張統計(%util, await など)を表示
# -z : アイドル状態のデバイスを除外
# 5 : 5秒間隔
# 12 : 12回繰り返し(合計1分)
主要フィールドと判断基準
| フィールド | 意味 | しきい値目安 |
|---|---|---|
%util |
ディスクの使用率 | 70% 超で要注意、90% 超で危険 |
await |
I/O リクエストの平均待機時間(ms) | HDD: 20ms 超、SSD: 5ms 超で要注意 |
r/s, w/s |
1 秒あたりの読み書き回数(IOPS) | デバイス仕様と比較して評価 |
rkB/s, wkB/s |
1 秒あたりの読み書き量(KB) | スループット上限と比較して評価 |
⑤ vmstat — システム全体の統合状況(全サーバー)
プロセス・メモリ・スワップ・I/O・CPU の状態をまとめて 1 行表示します。システム全体の「健康状態」を素早く確認するのに最適です。
コマンド
vmstat 5 12
# 5 : 5秒間隔
# 12 : 12回繰り返し(合計1分)
出力例と各フィールドの意味
procs --------memory------- --swap-- ---io--- --cpu---
r b swpd free cache si so bi bo wa us sy id
| フィールド | 意味 | 注目基準 |
|---|---|---|
r |
実行待ちプロセス数 | CPU コア数を超えると CPU 飽和 |
b |
I/O 待ちでブロックされたプロセス数 | 0 でない場合はディスクを確認 |
si / so |
スワップ IN / OUT(KB/s) | 0 以外は危険信号 |
wa |
I/O 待ち CPU 時間の割合 | 10% 超で I/O ボトルネックを疑う |
⚠ vmstat の最初の行はシステム起動からの累計値です。2 行目以降を分析対象にしてください。
ツール選択の早見表
| 何を調べたいか | 使うツール | 対象サーバー |
|---|---|---|
| 遅いリクエスト・エラー率 | アクセスログ | Web |
| CPU の詳細(コア別・カテゴリ別) | mpstat | 全サーバー |
| メモリ・スワップの状況 | free | 全サーバー |
| ディスク I/O の詳細 | iostat | 特に DB サーバー |
| システム全体の健康状態(俯瞰) | vmstat | 全サーバー |