USE法とRED法:メトリクスの体系
監視ダッシュボードに指標が並ぶのにボトルネックが特定できないのは、選び方に体系がないからです。リソースを測るUSE法、サービスを測るRED法、Four Golden Signalsの関係を原理から整理します。
- 1.USE法はリソース視点で利用率・飽和・エラーの3つを測り、RED法はサービス視点で要求レート・エラー・処理時間の3つを測る。視点が90度違う相補的フレームワーク。
- 2.飽和(Saturation)が他と決定的に違うのは、利用率100%未満でも待ち行列が伸びる先行指標である点。USE法の核心はここにある。
- 3.Four Golden SignalsはREDの3つに飽和を足したもの。USEのSaturationを取り込み、リソースとサービスの橋渡しをする位置づけ。
メトリクス選定に「体系」が要る理由
監視を始めると指標は際限なく増やせます。CPU、メモリ、ディスクIO、各種キュー長、HTTP ステータス別カウント……。問題は数ではなく網羅性と視点の整合です。やみくもに集めると、障害時に「どこを見ればボトルネックがわかるか」が定まらない。USE法とRED法は、この「何を測れば対象を漏れなく診断できるか」を少数の固定軸に落とし込むためのフレームワークです。
両者の本質的な違いは視点の向きにあります。USE法は Brendan Gregg が提唱したもので、CPU・メモリ・ディスク・ネットワークといった**リソース(供給側)を見ます。RED法は Tom Wilkie が広めたもので、サービスが受け取る要求(需要側)**を見ます。同じ障害を、供給の枯渇として見るか、需要の劣化として見るか——この90度違う2視点を両方持つことが体系化の出発点です。
| USE法 | RED法 | |
|---|---|---|
| 測る対象 | リソース(CPU・メモリ・ディスク・キュー等) | サービス(API・エンドポイント等) |
| 視点 | 供給側(capacity) | 需要側(demand) |
| 1文字目 | Utilization 利用率 | Rate 要求レート |
| 2文字目 | Saturation 飽和 | Errors エラー |
| 3文字目 | Errors エラー | Duration 処理時間 |
| 主な用途 | 原因の局在化・容量の診断 | ユーザー影響・SLO の監視 |
USE法:すべてのリソースに3つの指標
USE法の主張は単純です。システム内のあらゆるリソースについて、利用率・飽和・エラーの3つを測れ。リソースを列挙し、機械的に3軸を当てると診断の抜けがなくなります。
- Utilization(利用率): そのリソースが仕事に使われていた時間の割合。CPU なら使用率、ディスクなら IO で埋まっていた時間の割合。0〜100% の平均的な忙しさを表します。
- Saturation(飽和): リソースがさばききれず待たされている量。実行可能だが CPU を待つスレッド数(run-queue 長)、メモリのスワップ量、ディスクIOのキュー長など。利用率が「どれだけ使ったか」なのに対し、飽和は「どれだけ不足したか」を表します。
- Errors(エラー): そのリソース由来のエラーイベント数。ディスクの読み書き失敗、ネットワークのパケットドロップ、ECC訂正不能エラーなど。
3つの中で飽和が決定的に重要なのは、利用率が100%に達する前から悪化を捉える先行指標だからです。利用率は上限100%で頭打ちになり、「100%」の状態がどれほど深刻かを区別できません。一方、飽和(待ち行列長)に上限はなく、需要が容量を超えた分だけ際限なく伸びる。つまり利用率が天井に張り付いて情報を失う領域で、飽和は劣化の深さを語り続けます。
なぜ飽和が利用率より早く動くのか。待ち行列理論 がこれを説明します。利用率 ρ(ロー)が1に近づくと、待ち時間は 1/(1-ρ) に比例して急増します。ρ が 0.7 から 0.9 へ上がるとき、利用率の見た目はわずか0.2の変化ですが、待ち時間(=飽和の体感)は 1/0.3 ≒ 3.3 から 1/0.1 = 10 へと約3倍に跳ねる。利用率は線形に見えても、その裏で飽和は非線形に爆発しているのです。
利用率 ρ と平均待ち時間の関係(M/M/1 近似)
ρ=0.5 → 待ち係数 1/(1-ρ) = 2
ρ=0.8 → 待ち係数 = 5
ρ=0.9 → 待ち係数 = 10
ρ=0.95 → 待ち係数 = 20 ← 利用率の差は小さいが飽和は急増
利用率を1分平均などで取ると、その間の瞬間的な飽和を平滑化して消してしまいます。100ミリ秒だけ100%に張り付いてキューが伸びても、1分平均では60%にしか見えない。利用率だけ監視して安心していると、実際にはユーザーが詰まりを体感している、という乖離が起きます。飽和(キュー長やスワップ)を併せて見ることで、平均が隠したバーストを掴めます。
RED法:すべてのサービスに3つの指標
RED法は視点を反転させ、リクエストを受けるサービスごとに3つを測れと言います。
- Rate(要求レート): 単位時間あたりのリクエスト数(秒間リクエスト)。需要そのものの大きさ。
- Errors(エラー): 失敗したリクエストの数または率。HTTP 5xx や、業務的に失敗とみなすレスポンス。
- Duration(処理時間): リクエストの応答時間の分布。
RED法の要点は、Duration を平均で見ないことです。応答時間は右に長い裾を引くため、平均はテール(遅い少数)を覆い隠します。パーセンタイル統計 で見たとおり、p50・p90・p99 の分布で見て初めてユーザー体験の劣化が見えます。Rate と Errors も「率」として読み、Errors はレートを母数とする比率(エラー率)で正規化するのが基本です。
RED法の3指標は、そのまま SLO/SLI の素材になります。可用性SLI=(Rate − Errors)/ Rate、レイテンシSLI=Duration が閾値内に収まった割合。RED を計測していれば SLI 定義はほぼ自動的に導けます。逆に言うと、サービスごとに RED を揃えておくことが SLO 運用の前提条件です。
両者の関係:USEは原因、REDは症状
USE と RED は競合せず相補的です。ユーザーが体感するのは常に RED 側(遅い・失敗する)であり、その原因は多くの場合 USE 側(どこかのリソースが飽和した)にあります。
症状(RED) 原因(USE)
Duration p99 悪化 ← CPU run-queue 飽和 / ディスクIOキュー増大
Errors 増加 ← メモリ枯渇でOOM / コネクションプール飽和
Rate 急増 → 下流リソースの利用率・飽和を押し上げる
障害対応の定石は、REDで影響を検知し、USEで原因を局在化するという流れです。ダッシュボードはサービス階層を RED で、その下の各リソースを USE で並べると、上から下へ原因を辿れます。オブザーバビリティの三本柱 でいうメトリクスの設計指針として、この2フレームワークは「何をメトリクス化すべきか」の最小セットを与えます。
Four Golden Signals との関係
Google SRE 本の Four Golden Signals(4つの黄金信号)は、Latency・Traffic・Errors・Saturation の4つです。これは RED の3つに USE の飽和を足したハイブリッドとして理解できます。
| Golden Signal | 対応するRED | 対応するUSE | 意味 |
|---|---|---|---|
| Traffic | Rate | — | 需要の大きさ |
| Errors | Errors | Errors | 失敗 |
| Latency | Duration | — | 応答時間 |
| Saturation | — | Saturation | リソースの逼迫(先行指標) |
Golden Signals が RED に Saturation を1つだけ足したのは偶然ではありません。RED の3つはサービス境界の外側から見える症状ですが、それだけでは「あと何分で破綻するか」がわからない。Saturation を1つ加えることで、症状が出る前の余力を測れます。利用率(Utilization)を採らなかったのは、利用率が飽和より情報量が少なく、テールを捉えにくいという USE 法と同じ判断です。
「USE と RED と Golden Signals の違いを述べよ」。模範解答:USEはリソース単位で利用率・飽和・エラー、REDはサービス単位で要求レート・エラー・処理時間。両者は視点(供給側 対 需要側)が直交し相補的。Golden SignalsはRED(Traffic・Errors・Latency)に飽和を加えた4つで、症状と先行指標を1セットにしたもの。共通して飽和が利用率より優れた先行指標である点が核心です。
メトリクスの「数」を増やすことは容易ですが、増やすほど カーディナリティ のコストが膨らみ、アラートも騒がしくなります。USE・RED・Golden Signals が支持されるのは、少数の固定軸で網羅性を保証するからです。リソースには3つ、サービスには3つ——この機械的な当てはめが、ダッシュボードとアラートを「漏れなく、かつ最小限に」保ちます。
まとめ
- USE法はリソース(供給側)を利用率・飽和・エラーで、RED法はサービス(需要側)を要求レート・エラー・処理時間で測る。視点が90度違う相補的フレームワーク。
- 飽和(Saturation)は利用率100%未満でも待ち行列として伸びる先行指標で、待ち行列理論の
1/(1-ρ)により利用率より非線形に早く悪化する。 - RED の3指標はそのまま SLI/SLO の素材になり、Duration はパーセンタイルで見るのが必須。
- Four Golden Signals は RED に Saturation を加えた4つで、症状(RED)と先行指標(USE の飽和)を橋渡しする。
- 障害対応は RED で症状を検知し、USE で原因リソースを局在化する流れが定石。少数の固定軸が網羅性とコストを両立させる。
DevOps/インフラ Article
USE法とRED法:メトリクスの体系を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
DevOps
比較で見る軸
難易度: advanced / カテゴリ: DevOps/インフラ / タグ数: 6
導入後に効く点
飽和(Saturation)が他と決定的に違うのは、利用率100%未満でも待ち行列が伸びる先行指標である点。USE法の核心はここにある。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- DevOps/インフラ
- タグ数
- 6
判断チェックリスト
- 自社の用途が「DevOps / メトリクス」に近いか確認する。
- 強みである「USE法はリソース視点で利用率・飽和・エラーの3つを測り、RED法はサービス視点で要求レート・エラー・処理時間の3つを測る。視点が90度違う相補的フレームワーク。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。