🐱 うさねこ教室 Python と可観測性の教室

USE メソッド

🐱 この章の目次

USE メソッドとは

USE メソッド は Brendan Gregg が提唱したパフォーマンス分析の方法論です。 すべてのリソースに対して Utilization(使用率)Saturation(飽和)Errors(エラー) の 3 つを確認します。 漏れなくチェックすることで、見落としがちなボトルネックを体系的に発見できます。

3 つの指標

  • Utilization — リソースがビジーだった時間の割合(0〜100%)
  • Saturation — リソースが処理しきれずキューに溜まっている仕事量
  • Errors — エラーイベントの発生数

使用率が高くてもエラーが出ていなければ「効率よく使っている」と解釈できます。 飽和が発生している場合は、キュー待ちによるレイテンシ増大が起きている可能性が高いです。

リソース別チェックリスト

リソースUtilizationSaturationErrors
CPUmpstat%usr + %sysランキュー長(vmstatrperf stat のハードウェアエラー
メモリ使用量 / 総容量スワップイン/アウトOOM killer 発動
ディスクiostat%utilavgqu-sz(平均キュー長)smartctl のエラーカウント
ネットワーク帯域使用率TCP 再送、ドロップインタフェースエラー
# CPU の USE を一度に確認する例
mpstat -P ALL 1 5
vmstat 1 5

アプリケーションレベルへの適用

USE メソッドはハードウェアリソースだけでなく、アプリケーションレベルのリソースにも適用できます。 たとえばコネクションプールでは、使用率は「使用中コネクション数 / 最大プールサイズ」、飽和は「プール取得待ちスレッド数」、エラーは「タイムアウト数」です。 スレッドプール、ワーカープロセス、レートリミッタなど、有限容量を持つ任意のリソースに同じ枠組みを適用できます。