📊
詳解 システム・パフォーマンス - 概要・読み方ガイド
Brendan Gregg著「詳解 システム・パフォーマンス 第2版」の全体マップ。USE法・RED法・フレームグラフの入口となる読書ノートシリーズ。
書籍情報
| 項目 | 内容 |
|---|---|
| 書名 | 詳解 システム・パフォーマンス 第2版 |
| 原著 | Systems Performance: Enterprise and the Cloud (2nd Ed.) |
| 著者 | Brendan Gregg(Netflix, Oracle, Intel でのSRE経験) |
| 監訳 | 西脇 靖紘 / 訳:長尾 高弘 |
| 出版社 | O’Reilly Japan |
| 発行年 | 2023年1月 |
| ページ数 | 940ページ |
| 章数 | 16章 |
なぜ読むか
- パフォーマンス問題は「勘」ではなく体系的な方法論で解決できる
- USE法・RED法など、どんな環境でも使える汎用的なフレームワークを習得できる
perf・BPF・Ftraceなど Linux 標準ツールの実践的な使い方を網羅- SRE/DevOps の本番障害対応・キャパシティプランニングに直結する知識
全体章構成マップ(16章)
| 章 | タイトル | キーワード |
|---|---|---|
| 1 | イントロダクション | 読み方・前提知識 |
| 2 | メソドロジ | USE法・RED法・60秒診断 ← 最重要 |
| 3 | オペレーティングシステム | カーネル・プロセス・メモリ管理 |
| 4 | 可観測性ツール | ツール分類・vmstat/iostat/sar |
| 5 | アプリケーション | アプリ層の観測・プロファイリング |
| 6 | CPU分析 | perf・フレームグラフ・CPIの読み方 |
| 7 | メモリ分析 | pmap・Valgrind・ページフォルト |
| 8 | ファイルシステム分析 | VFS・キャッシュ・iolatency |
| 9 | ディスク分析 | iostat詳細・biolatency |
| 10 | ネットワーク分析 | ss・tcpretrans・TCPレイテンシ |
| 11 | クラウドコンピューティング | ノイジーネイバー・steal time |
| 12 | ベンチマーキング | ベンチマーク設計の原則 |
| 13 | perf | perfコマンドレシピ集 |
| 14 | Ftrace | カーネルトレーサー・latency |
| 15 | BPF | BCC tools・bpftrace ワンライナー |
| 16 | ケーススタディ | 赤いクジラ・実践的思考プロセス ← 最初に読む |
著者推奨の読み順
著者は「最初に16章を読め」と明言している。思考プロセスを先に学ぶことで、他の章の理解が深まる。
① 第16章(ケーススタディ)
↓ パフォーマンスエンジニアの思考プロセスを体感
② 第2章(メソドロジ)
↓ USE法・RED法・60秒診断の体系を習得
③ 興味・業務に関連する章を選択的に読む
例: Kubernetes/Cloud → 11章 → 4章 → 10章
例: CPUボトルネック調査 → 6章 → 13章
例: メモリ問題 → 7章
中心思想:2つの方法論
USE Method(インフラ層)
すべてのシステムリソースについて以下の3指標を確認する。
| 指標 | 意味 | 高い場合の意味 |
|---|---|---|
| Utilization(使用率) | リソースがビジー状態にある割合 | リソース枯渇の手前 |
| Saturation(飽和度) | キューに積まれた未処理の量 | 実際に詰まっている |
| Errors(エラー) | エラーイベント数 | ハードウェア・設定の異常 |
「約80%のパフォーマンス問題は、5%の労力で解決できる」
USE法はその5%を効率的に特定するための方法論。
RED Method(サービス層)
マイクロサービス・アプリケーション層の監視に特化。
| 指標 | 意味 |
|---|---|
| Rate(レート) | 秒あたりのリクエスト数 |
| Errors(エラー) | 失敗したリクエスト数 |
| Duration(時間) | リクエスト処理時間(p50/p95/p99) |
使い分け:インフラ層の問題 → USE法、サービス品質の問題 → RED法
5分トラブルシューティングスクリプト
本番でパフォーマンス低下が報告されたときの初動。
#!/bin/bash
# systems-perf-quick-check.sh
# 本番障害の初動5分診断
echo "=== 1. 負荷確認 ==="
uptime
# load averageがCPUコア数を超えていたら要警戒
echo "=== 2. カーネルエラー ==="
dmesg | tail -5
# OOM killer、ハードウェアエラーがないか確認
echo "=== 3. CPU/メモリ ==="
vmstat 1 3
# r列=runキュー、b列=ブロック、si/so=スワッピング発生
free -h
# availableが少ない → メモリプレッシャー
echo "=== 4. ディスクI/O ==="
iostat -xz 1 3
# %util>80% → ディスク飽和 / await高い → I/Oレイテンシ問題
echo "=== 5. CPU使用プロセス特定 ==="
ps aux | sort -k3 -rn | head -5
echo "=== 6. ネットワーク ==="
sar -n TCP,ETCP 1 1
# retrans/s増加 → ネットワーク品質問題
ss -s
# 接続数の概況
このシリーズの読み方
各ドキュメントは「すぐ使えるコマンドとその解釈」を中心に構成している。
本を手元に置きながら、各ドキュメントをコマンドリファレンスとして使うことを想定。
| ドキュメント | 対象読者の状況 |
|---|---|
| 概要(このページ) | 全体像を把握したい |
| ch16 ケーススタディ | 思考プロセスを学びたい |
| ch02 メソドロジ | USE法・60秒診断を実践したい |
| ch06 CPU分析 | CPUボトルネックを調査したい |
| ch13 perf | フレームグラフを作りたい |
| ch15 BPF | bpftraceでトレースしたい |
- 1. 📊詳解 システム・パフォーマンス - 概要・読み方ガイド
- 2. 🔍詳解 システム・パフォーマンス - 第16章:ケーススタディ
- 3. 🧭詳解 システム・パフォーマンス - 第2章:メソドロジ
- 4. 🐧詳解 システム・パフォーマンス - 第3章:オペレーティングシステム
- 5. 🔭詳解 システム・パフォーマンス - 第4章:可観測性ツール
- 6. ⚙️詳解 システム・パフォーマンス - 第5章:アプリケーション
- 7. 💻詳解 システム・パフォーマンス - 第6章:CPU分析
- 8. 🧠詳解 システム・パフォーマンス - 第7章:メモリ分析
- 9. 📁詳解 システム・パフォーマンス - 第8章:ファイルシステム分析
- 10. 💾詳解 システム・パフォーマンス - 第9章:ディスク分析
- 11. 🌐詳解 システム・パフォーマンス - 第10章:ネットワーク分析
- 12. ☁️詳解 システム・パフォーマンス - 第11章:クラウドコンピューティング
- 13. 📏詳解 システム・パフォーマンス - 第12章:ベンチマーキング
- 14. 🔥詳解 システム・パフォーマンス - 第13章:perf
- 15. 🔬詳解 システム・パフォーマンス - 第14章:Ftrace
- 16. ⚡詳解 システム・パフォーマンス - 第15章:BPF/eBPF
出典: 詳解 システム・パフォーマンス 第2版 Brendan Gregg著