待ち行列理論で見るネットワーク遅延(M/M/1)
回線使用率が80%を超えると遅延が急に跳ねる理由が式で腑に落ちる。到着率と処理率からキュー長と待ち時間を導く M/M/1 と、利用率上昇で遅延が発散する非線形性、リトルの法則の適用を内部から解説。
- 1.M/M/1 はポアソン到着・指数サービス・サーバ1台のモデル。利用率 ρ=λ/μ が安定の鍵で、平均待ち時間は W=1/(μ−λ) と閉じた式で出る。
- 2.遅延は ρ に線形ではなく 1/(1−ρ) で増える。ρ が 1 に近づくと滞留時間は発散し、これが「使用率を上げすぎると急に詰まる」現象の正体。
- 3.リトルの法則 L=λW は分布に依存しない普遍則。系内人数・到着率・滞留時間の3つを結び、キュー長や帯域遅延積の見積りに直接使える。
なぜ待ち行列理論がネットワークに効くのか
ルータやスイッチ、ロードバランサ、サーバのどれも、本質は「到着したジョブを 1 つの処理装置で順にさばく窓口」です。パケットが来る速さ(到着率)が、装置がさばける速さ(処理率)に近づくほどキューが伸び、遅延が増えます。この関係を最小限の仮定で式にしたのが M/M/1 で、ネットワーク遅延の直感を数式で裏付けてくれます。
記号の意味をまず固定します。到着率を λ(ラムダ、1 秒あたり何パケット来るか)、サービス率を μ(ミュー、1 秒あたり何パケットさばけるか)とします。1 パケットの平均処理時間は 1/μ です。両者の比が利用率(使用率) ρ = λ / μ で、装置がどれだけ忙しいかを表します。
3 つの記号は「到着過程/サービス時間分布/窓口数」を表します。最初の M はポアソン到着(到着間隔が指数分布、メモリレス)、次の M は指数分布のサービス時間、最後の 1 は窓口(サーバ)が 1 台。M は Markovian(無記憶)の頭文字です。バッファは無限長、先着順(FIFO)が前提です。
安定条件と平均量の閉じた式
M/M/1 が定常状態を持つ条件は ρ < 1、つまり λ が μ 未満であることです。到着が処理を上回ればキューは際限なく伸び、定常解は存在しません。
ρ が 1 未満なら、系内にちょうど n 個いる確率は P(n) = (1 − ρ) · ρ^n という幾何分布になります。ここから平均量が次のように閉じた形で出ます。
利用率 ρ = λ / μ
系内の平均パケット数 L = ρ / (1 − ρ)
平均滞留時間(系内) W = 1 / (μ − λ)
平均待ち行列長(窓口除く) Lq = ρ^2 / (1 − ρ)
平均待ち時間(待ち行列のみ) Wq = ρ / (μ − λ)
W は窓口での処理時間 1/μ も含む「系に入ってから出るまで」の全所要時間で、ネットワークでいえばその装置 1 段の遅延に相当します。Wq はそこから自分の処理時間を引いた、純粋に列で待つ時間です。両者は W = Wq + 1/μ の関係にあります。
平均量はすべて「ρ の多項式 ÷ (1 − ρ)」の形をしています。分母の (1 − ρ) が空き容量(余裕)を表し、これがゼロに近づくほど全量が爆発します。L と Lq の違いは「窓口で処理中の平均 ρ を含むか否か」だけで、L = Lq + ρ が成り立ちます。
遅延が発散する非線形性
ここが M/M/1 の核心です。滞留時間を利用率で書き直すと、W = (1/μ) / (1 − ρ) となります。窓口が空いていれば遅延は最小値 1/μ(自分の処理時間だけ)ですが、ρ が 1 に近づくと 1/(1 − ρ) の係数が発散します。
具体的な倍率で見ると非線形性は明白です。
| 利用率 ρ | 遅延係数 1/(1−ρ) | 最小遅延の何倍か |
|---|---|---|
| 0.5(50%) | 2.0 | 2 倍 |
| 0.8(80%) | 5.0 | 5 倍 |
| 0.9(90%) | 10.0 | 10 倍 |
| 0.95(95%) | 20.0 | 20 倍 |
| 0.99(99%) | 100.0 | 100 倍 |
利用率を 50% から 80% に上げても遅延は 2 倍から 5 倍ですが、90% から 99% へのわずか 9 ポイントの上昇で 10 倍が 100 倍へ跳ねます。「回線やサーバを 100% 近くまで詰めて使う」のが危険なのはこのためです。平均では空きがあるように見えても、ポアソン到着のゆらぎが瞬間的にキューを積み上げ、ρ が高いほど積み上がったキューが掃ける前に次のバーストが来ます。容量計画で利用率に上限(たとえば 70〜80%)を設けるのは、この発散域に入る前で止めるための安全余裕です。
M/M/1 の系内人数は幾何分布で、テール(裾)が指数的に減衰します。平均待ち時間が小さくても、ρ が高いと「たまに非常に長く待つパケット」が一定割合で出ます。P99 / P99.9 といったテールレイテンシは平均よりずっと急峻に ρ で悪化するため、平均遅延だけを見て容量を決めると裾で痛い目を見ます。
リトルの法則:分布に依存しない普遍則
上の L と W は別々に導いたように見えますが、両者は リトルの法則(Little's Law) で必然的に結ばれています。
L = λ · W
(系内の平均数 = 到着率 × 平均滞留時間)
この式の強さは、到着やサービスの分布をいっさい仮定しない点にあります。系が定常で「入った分だけ出ていく」状態なら、M/M/1 でも、複数窓口でも、サービス時間がどんな分布でも常に成り立ちます。実際、待ち行列だけに限った Lq = λ · Wq も同時に成り立ちます。M/M/1 の L = ρ/(1−ρ) と W = 1/(μ−λ) を掛け算で確かめると、λ · W = λ/(μ−λ) = ρ/(1−ρ) = L ときれいに一致します。
ネットワークでの使いどころは広く、3 つの量のうち 2 つが測れれば残り 1 つが出ます。
| L(系内の量) | λ(到着率) | W(滞留時間) | ネットワークでの読み替え |
|---|---|---|---|
| 飛行中のパケット数 | 送信レート | RTT | 帯域遅延積(BDP)= 帯域 × RTT |
| キュー内パケット数 | パケット到着率 | キュー滞留時間 | バッファ占有 = 到着率 × 滞留時間 |
| 同時接続数 | 新規接続レート | 平均接続保持時間 | サーバの並列度の見積り |
たとえば飛行中のデータ量がリンクの帯域遅延積です。L(窓に入れるべきバイト数)を λ(スループット)と W(RTT)から L = λ·W で求める発想は、TCP の送信ウィンドウ設計そのものです(TCPフロー制御とウィンドウ 参照)。同じ法則で、AQM がキュー遅延を「キュー長 ÷ 排出レート」で推定するのも W = L/λ の言い換えにすぎません。
モデルの限界と実務での扱い
M/M/1 は強力ですが、仮定が現実と食い違う場面を知っておく必要があります。
- 到着はポアソンとは限らない:実トラフィックはバースト性が強く自己相似的で、独立なポアソン過程より裾が重い。M/M/1 はしばしば楽観的な見積りになります。
- サービス時間は指数分布とは限らない:パケット長が固定に近いなら分散が小さく、より一般の M/G/1 が適切です。サービス時間の分散が大きいほど待ち時間は悪化します(ポラチェック=ヒンチンの公式)。
- バッファは有限:実機のキューは有限長で、溢れればパケットを落とします(M/M/1/K モデル)。深すぎるバッファはむしろ遅延を肥大させます(バッファブロートと AQM 参照)。
それでも M/M/1 が価値を失わないのは、定性的な振る舞いが正確だからです。「利用率を上げると遅延は線形でなく 1/(1−ρ) で跳ね、テールはさらに急」という性質は、より複雑なモデルでも崩れません。容量計画でまず把握すべきは正確な絶対値より、この発散の形です。レート制御で平均到着率 λ を抑えてゆらぎを平滑化する手法は トークンバケットとリーキーバケット、遅延とスループットと帯域の基礎関係は 帯域・レイテンシ・スループット を参照してください。
「利用率を 2 倍にすると遅延は何倍か」に即答しないこと。正解は「ρ の値による」で、W = (1/μ)/(1−ρ) だから低利用率域なら緩やか、ρ が 1 に近い域では急激に増える、と答えます。あわせて、リトルの法則 L = λW が到着・サービスの分布に依存しないこと、M/M/1 の安定条件が ρ < 1(λ が μ 未満)であることは頻出です。帯域遅延積をリトルの法則で説明できると一段深く見えます。
ネットワーク Article
待ち行列理論で見るネットワーク遅延(M/M/1)を実務で読む
TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。
解決すること
待ち行列理論
比較で見る軸
難易度: advanced / カテゴリ: ネットワーク / タグ数: 5
導入後に効く点
遅延は ρ に線形ではなく 1/(1−ρ) で増える。ρ が 1 に近づくと滞留時間は発散し、これが「使用率を上げすぎると急に詰まる」現象の正体。
先に潰すリスク
用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。
- 難易度
- advanced
- カテゴリ
- ネットワーク
- タグ数
- 5
判断チェックリスト
- 自社の用途が「待ち行列理論 / M/M/1」に近いか確認する。
- 強みである「M/M/1 はポアソン到着・指数サービス・サーバ1台のモデル。利用率 ρ=λ/μ が安定の鍵で、平均待ち時間は W=1/(μ−λ) と閉じた式で出る。」が本当に評価軸になるか確認する。
- 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
- 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
- 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
- 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。