USE メソッド
🐱 この章の目次
USE メソッドとは
USE メソッド は Brendan Gregg が提唱したパフォーマンス分析の方法論です。 すべてのリソースに対して Utilization(使用率)、Saturation(飽和)、Errors(エラー) の 3 つを確認します。 漏れなくチェックすることで、見落としがちなボトルネックを体系的に発見できます。
3 つの指標
- Utilization — リソースがビジーだった時間の割合(0〜100%)
- Saturation — リソースが処理しきれずキューに溜まっている仕事量
- Errors — エラーイベントの発生数
使用率が高くてもエラーが出ていなければ「効率よく使っている」と解釈できます。 飽和が発生している場合は、キュー待ちによるレイテンシ増大が起きている可能性が高いです。
リソース別チェックリスト
| リソース | Utilization | Saturation | Errors |
|---|---|---|---|
| CPU | mpstat の %usr + %sys | ランキュー長(vmstat の r) | perf stat のハードウェアエラー |
| メモリ | 使用量 / 総容量 | スワップイン/アウト | OOM killer 発動 |
| ディスク | iostat の %util | avgqu-sz(平均キュー長) | smartctl のエラーカウント |
| ネットワーク | 帯域使用率 | TCP 再送、ドロップ | インタフェースエラー |
# CPU の USE を一度に確認する例
mpstat -P ALL 1 5
vmstat 1 5
アプリケーションレベルへの適用
USE メソッドはハードウェアリソースだけでなく、アプリケーションレベルのリソースにも適用できます。 たとえばコネクションプールでは、使用率は「使用中コネクション数 / 最大プールサイズ」、飽和は「プール取得待ちスレッド数」、エラーは「タイムアウト数」です。 スレッドプール、ワーカープロセス、レートリミッタなど、有限容量を持つ任意のリソースに同じ枠組みを適用できます。