| name | analyze-linux-performance-in-60s |
| description | Linuxサーバーのパフォーマンスを分析(60秒分析チェックリストに基づく) |
Linuxパフォーマンス分析 (60秒分析チェックリスト)
概要
このコマンドは、Linuxサーバーの負荷状況を「Linux Performance Analysis in 60,000 Milliseconds」の手順に基づいて分析します。
サーバー上で約1分間のデータ収集を行い、その結果を元にボトルネックを特定します。
(出典: 詳解システムパフォーマンス第2版)
手順
ステップ1: サーバーでのデータ収集
分析対象のサーバーで以下のブロックをコピーして実行してください。
実行には約1分かかります。 すべてのコマンドが終了し、プロンプトに戻るまでお待ちください。
echo "--- [1] uptime (Load Average) ---"; uptime; \
echo "--- [2] dmesg (Kernel Errors) ---"; dmesg -T | tail -n 50; \
echo "--- [3] vmstat (System stats - 20s) ---"; vmstat -SM 1 20; \
echo "--- [4] mpstat (CPU balance - 10s) ---"; mpstat -P ALL 1 10; \
echo "--- [5] pidstat (Process stats - 10s) ---"; pidstat 1 10; \
echo "--- [6] iostat (Disk I/O - 10s) ---"; iostat -sxz 1 10; \
echo "--- [7] free (Memory usage) ---"; free -m; \
echo "--- [8] sar-dev (Network I/O - 5s) ---"; sar -n DEV 1 5; \
echo "--- [9] sar-tcp (TCP stats - 5s) ---"; sar -n TCP,ETCP 1 5; \
echo "--- [10] top (Process list snapshot) ---"; top -b -n 1 | head -n 50
ステップ2: 結果の貼り付け
スクリプトが終了したら、ターミナルの出力をすべてコピーして、このチャットに貼り付けてください。
ステップ3: 分析とレポート
提供されたデータを元に、以下の観点で詳細なレポートを作成します。
- 負荷の傾向 (Saturation): 負荷が上昇中か、安定しているか、飽和しているか。
- CPU分析: 特定のコアに負荷が偏っていないか、システム(kernel)時間が長すぎないか。
- メモリ分析: スワップが発生していないか、キャッシュが有効に機能しているか。
- I/O分析: 特定のディスクがボトルネックになっていないか、待ち時間(await)が異常に高くないか。
- ネットワーク分析: 再送(retrans)やエラー、帯域の限界に達していないか。
- 原因の特定: どのプロセスがリソースを消費しているか、またはカーネルレベルの問題か。
レポート構成案
# Linuxパフォーマンス分析レポート
## 1. 総合評価
[例: 重度のI/Oボトルネックを確認、CPUは余裕あり]
## 2. リソース別詳細分析
- **CPU**: [数値に基づく評価]
- **Memory**: [数値に基づく評価]
- **Storage I/O**: [数値に基づく評価]
- **Network**: [数値に基づく評価]
## 3. 異常ログ・エラー
- [dmesgなどから読み取れる情報]
## 4. 推奨される改善アクション
1. [具体的な対策案]
2. [追加で調査すべき項目]
注意事項
- コマンドが存在しない(未インストール)場合、その項目は
command not found となりますが、分析は可能な範囲で行います。
top はバッチモード (-b) で実行し、上位50行のみを取得します。