評価・監視・ガードレール

レイテンシ監視とは|平均985ミリ秒の裏で、p99.9は11359ミリ秒だった

レイテンシ監視で何を見るのか平均では何が分からないのかどう集計すればよいのか

応答時間の平均は985ミリ秒でした。ところが1000件に1件は11359ミリ秒かかっています。

さらに、1分ごとの平均を先に取ると最大が41705ミリ秒から1784ミリ秒に化けます。遅い件が消えます。

この記事の要点

  • 平均985ミリ秒、p50は805ミリ秒
  • p99は3698ミリ秒、p99.9は11359ミリ秒
  • 平均より遅い件は35.8%
  • 先に平均すると最大が41705から1784

平均985ミリ秒の裏で、p99.9は11359ミリ秒だった

裾の重い応答時間を10万件作って測りました。平均と分位点では見えるものが違います。

レイテンシ監視で何を見るべきかを、実際に走らせて測りました。中央値800ミリ秒で裾の重い分布を10万件作っています。

100件に1件は、外部の詰まりで4倍から10倍に遅れるようにしました。実際の業務処理でよくある形です。

javascript
const pct = (sorted, p) =>
  sorted[Math.min(sorted.length - 1, Math.floor((sorted.length * p) / 100))];

const sorted = [...lat].sort((a, b) => a - b);
const mean = lat.reduce((a, b) => a + b, 0) / N;
text
見方          値
平均                  985ミリ秒
p50                 805ミリ秒
p90                1664ミリ秒
p95                2085ミリ秒
p99                3698ミリ秒
p99.9             11359ミリ秒
最大                41705ミリ秒

平均より遅い件数: 35,846件(35.8%)

上の表を見てください。平均は985ミリ秒ですが、1000件に1件は11359ミリ秒かかっています。11倍です。

平均が中央からずれる

中央値は805ミリ秒で、平均の985ミリ秒より低くなっています。少数の桁違いに遅い件が平均を引き上げているためです。

結果として平均より遅い件が35.8%もあります。平均を基準に「半分はこれより速い」と読むと外れます。

よく知られた形

この形は昔から指摘されています。Googleの資料も平均100ミリ秒の水準で毎秒1000件を捌くとき、1%の要求が5秒かかることは容易に起こりうると述べています。

1%といえば、毎秒1000件なら1秒あたり10件です。少数ではありません。

平均の裏に、桁の違う遅さがある。

単位: ミリ秒p99.911359ミリ秒p993698ミリ秒p952085ミリ秒平均985ミリ秒p50805ミリ秒10万件での実測。最大は41705ミリ秒で、平均より遅い件は35.8%あった。
図1 ── 応答時間の分位点
出典Google SRE Book「Monitoring Distributed Systems」2026-08-18 確認
If you run a web service with an average latency of 100 ms at 1,000 requests per second, 1% of requests might easily take 5 seconds.
原文Google SRE Book「Monitoring Distributed Systems」 この内容の有効期限2027-02-18

レイテンシ監視で何を見るのか

応答時間を測って見張ります。監視で最初に見る4つの指標のうちの1つとして位置づけられています。

レイテンシ監視は、応答時間を測って見張る取り組みです。利用者が待っている時間そのものを扱います。

最初に見る4つ

Googleの資料は、監視の4つの黄金信号は、応答時間・流量・失敗・飽和である。利用者向けの仕組みで4つしか測れないなら、この4つに絞れとしています。

応答時間はその1つ目です。失敗していなくても、遅ければ使えません

どう記録するか

分位点を出すには、元の分布が要ります。Googleの資料も遅い平均と、極端に遅い裾を見分ける最も簡単な方法は、応答時間の区間ごとに要求数を数えることだとしています。

  1. 区間ごとに件数を数える。0〜100ミリ秒、100〜200ミリ秒のように
  2. その数から分位点を出す。あとから任意の分位点を計算できる
  3. 平均も併せて見る。ただし判断の主役にはしない
  4. 成功と失敗を分ける。失敗はすぐ返るので、混ぜると速く見える

4番目は見落としがちです。失敗した要求は速く返ります。混ぜて集計すると、障害中に応答時間が改善したように見えます。

早めの合図として使う

応答時間は、詰まりの前ぶれとしても使えます。同じ資料は応答時間の増加はしばしば飽和の先行指標であり、短い窓での99パーセンタイルの測定が飽和のごく早い合図になるとしています。

つまりp99は、いま困っている人の数であると同時に、これから起きることの合図でもあります。

余談 この計測での注意

応答時間は種を固定した乱数で作っています。実際のシステムを測ったものではありません。ここで見せているのは、裾の重い分布で平均と分位点がどれだけ離れるかという関係です。自分の環境では、まず区間ごとの件数を記録するところから始めてください。

出典Google SRE Book「Monitoring Distributed Systems」2026-08-18 確認
The four golden signals of monitoring are latency, traffic, errors, and saturation. If you can only measure four metrics of your user-facing system, focus on these four.
原文Google SRE Book「Monitoring Distributed Systems」 この内容の有効期限2027-02-18

先に平均すると、遅い件が見えなくなる

1分ごとの平均を記録してから分位点を出すと、遅い件がならされます。順番を間違えると数字が化けます。

レイテンシ監視でよくある事故が、先に平均してから分位点を出すことです。実際に走らせて確かめました。

text
集計の仕方              p95        p99      最大
1件ずつ見る                    2085ミリ秒    3698ミリ秒   41705ミリ秒
60件ずつ平均してから               1188ミリ秒    1363ミリ秒    1784ミリ秒
600件ずつ平均してから              1044ミリ秒    1110ミリ秒    1115ミリ秒

上の表を見てください。最大が41705ミリ秒から1784ミリ秒になりました。23分の1です。

何が起きているか

60件の平均を取ると、1件の遅さが60件で割られます。40秒かかった1件も、他の59件と混ぜれば1秒足らずの上乗せにしかなりません。

600件ずつにすると、さらに平らになります。p95・p99・最大の差がほとんどなくなりました

順番を守る

分位点は元の1件ずつの値から出す必要があります。集計するなら、平均ではなく区間ごとの件数を持ちます。

Googleの資料が挙げている方法もこれです。応答時間の区間ごとに要求数を集める形なら、あとから分位点を出せます。

気づけなくなる

先に平均していると、一部の利用者だけが遅い状態に気づけません。全体の平均は動かないためです。

苦情が来てから調べても、記録にはその遅さが残っていません。記録の取り方が、調べられる範囲を決めます。応答時間の目標そのものの決め方はSLO/SLIの記事で扱います。

平均してから分位点を出すと、桁が変わる。

単位: ミリ秒1件ずつ見る41705ミリ秒60件ずつ平均1784ミリ秒600件ずつ平均1115ミリ秒10万件での実測。p95も2085ミリ秒から1188ミリ秒・1044ミリ秒へと下がった。
図2 ── 集計の順番による最大値の違い
出典Google SRE Book「Monitoring Distributed Systems」2026-08-18 確認
The simplest way to differentiate between a slow average and a very slow "tail" of requests is to collect request counts bucketed by latencies
原文Google SRE Book「Monitoring Distributed Systems」 この内容の有効期限2027-02-18

よくある質問

平均を見てはいけないのですか
平均だけでは足りません。この計測では平均985ミリ秒に対し、1000件に1件は11359ミリ秒かかっていました。
なぜ平均より遅い件が35.8%もあるのですか
裾が重い分布だからです。少数の桁違いに遅い件が平均を引き上げ、中央値805ミリ秒より高くなります。
1分ごとの平均を記録するのは駄目ですか
分位点を出す目的では駄目です。この計測では最大が41705ミリ秒から1784ミリ秒に化けました。
何を見ればよいのですか
件数を応答時間の区間ごとに数えておき、そこから分位点を出します。平均は補助として見ます。

まとめ

  • 応答時間を測って見張る取り組み
  • 平均985ミリ秒でもp99.9は11359ミリ秒
  • 平均より遅い件が35.8%ある
  • 先に平均すると遅い件が消える

今日から始められること

  1. いま平均だけを記録していないか確かめる
  2. 応答時間を区間ごとに数える形に変える
  3. p50・p95・p99を並べて見る
  4. 急に悪化したとき、どの分位点が動いたかを見る

実務で組んだレイテンシ監視のワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る