PART 04 / 07
•
2026.05.24
•
12 min read
PART 04 — 性能のしきい値と分析方法
正常・注意・危険の 3 段階で評価する — 各メトリクスのしきい値目安と分析コマンドを整理する。
しきい値の目安一覧
各メトリクスを「正常 ✅」「注意 ⚠」「危険 🚨」の 3 段階で評価します。あくまで目安であり、システムの仕様・ハードウェア性能によって適切な基準は異なります。
CPU(mpstat)
| メトリクス |
✅ 正常 |
⚠ 注意 |
🚨 危険 |
%idle(CPU 空き) |
50% 以上 |
20〜50% |
20% 未満 |
%iowait(I/O 待ち) |
5% 未満 |
5〜20% |
20% 超 |
ディスク I/O(iostat)
| メトリクス |
✅ 正常 |
⚠ 注意 |
🚨 危険 |
%util(ディスク使用率) |
70% 未満 |
70〜90% |
90% 超 |
await(待機時間 HDD) |
10ms 未満 |
10〜20ms |
20ms 超 |
await(待機時間 SSD) |
2ms 未満 |
2〜5ms |
5ms 超 |
メモリ(free)
| メトリクス |
✅ 正常 |
⚠ 注意 |
🚨 危険 |
available(実質空き) |
総量の 30% 以上 |
10〜30% |
10% 未満 |
swap used(スワップ使用) |
0 |
増加傾向 |
継続的な増加 |
アクセスログ
| メトリクス |
✅ 正常 |
⚠ 注意 |
🚨 危険 |
| レスポンスタイム |
1 秒未満 |
1〜3 秒 |
3 秒超 |
| エラー率(5xx) |
0.1% 未満 |
0.1〜1% |
1% 超 |
アクセスログの分析コマンド
awk '{if ($NF >= 3) print}' access.log | wc -l
awk '{print $NF, $7}' access.log \
| sort -rn | head -20
total=$(wc -l < access.log)
error=$(grep -c ' 5[0-9][0-9] ' access.log)
echo "Total: $total Errors(5xx): $error"
awk '{print substr($4,14,2)}' access.log \
| sort | uniq -c | sort -k2n
mpstat の分析コマンド
awk '/^[0-9]/ && $NF < 20 {print}' mpstat.txt
awk '/^[0-9]/ {print $6}' mpstat.txt \
| sort -rn | head -5
grep 'all' mpstat.txt
iostat の分析コマンド
awk '/^[a-z]/ && $NF >= 70 {print}' iostat.txt
awk '/^[a-z]/ {print $1, $10, $11}' iostat.txt
grep '^sda' iostat.txt
free の分析コマンド
grep 'Mem:' free.txt | awk '{print $7}'
grep 'Swap:' free.txt | awk '{print $3}'
awk '/Mem:/ {
available=$7; total=$2;
if (available/total*100 < 10)
print "⚠ Available: " available "MB (" int(available/total*100) "% of " total "MB)"
}' free.txt
vmstat の分析コマンド
tail -n +3 vmstat.txt
awk 'NR>2 && $1 >= 4 {print NR, $0}' vmstat.txt
awk 'NR>2 && ($7 > 0 || $8 > 0) {print "⚠ Swap: si=" $7 " so=" $8}' vmstat.txt
awk 'NR>2 && $16 > 10 {print "⚠ wa=" $16 "%"}' vmstat.txt
各コマンドのフィールド番号はカーネルバージョンや出力オプションによって異なる場合があります。head -2 ファイル名 でヘッダーを確認してから使用してください。