FOUNDATIONS / QUEUEING THEORY / PERFORMANCE
M/M/1待ち行列とは? 利用率と平均待ち時間を数式・図解・シミュレーションで理解する
公開日:2026-10-13
利用率25%の窓口が40%になっただけなのに、待ち時間は2倍になることがあります。サーバー・コールセンター・API・レジで共通する「混雑の数学」を、身近な例から理解します。
行列の身近な例 → M/M/1の仮定 → λ・μ・ρ → Wqの導出 → 数値例 → 応答時間とリトルの法則 → 操作ラボ → 実務での限界と改善策
1. 待ち行列はなぜ発生するのか
病院の受付、カフェのレジ、Webアプリのリクエスト処理を想像してください。窓口が空いている瞬間に到着すれば、すぐ処理できます。一方、利用者が短時間に集中すると待たなければなりません。平均到着件数が平均処理能力を下回っても、一時的な集中は起こりえます。
待ち行列理論は、到着のばらつき、サービス処理のばらつき、窓口数をモデル化し、平均待ち時間や混雑度を計算する方法です。負荷試験・容量計画・SLA設計の基礎となります。
到着
λ 件/時
ランダムに到着
待ち行列
平均待ち時間 Wq
窓口 1台
μ 件/時
サービス処理
完了・退出
系外へ出る
安定状態では長期平均の到着件数と退出件数は等しくなります。図は概念図で、実際の列の長さは刻々と変動します。
2. M/M/1という記号が意味すること
M/M/1はケンドールの記法です。最初のMは到着間隔が指数分布(到着件数はポアソン過程)に従うこと、次のMはサービス時間が指数分布に従うこと、1は同時にサービスを提供する窓口が1台であることを示します。MはMarkovian(無記憶性に関係する)という意味です。
| 記号・前提 | 意味 | 現場での読み替え |
|---|---|---|
| 最初の M | 到着はポアソン過程、到着間隔は指数分布 | 注文やリクエストがランダムに届く |
| 次の M | サービス時間は指数分布 | 処理時間にはばらつきがある |
| 1 | 単一サーバー(単一窓口) | 同時に1件を処理する |
| FCFSの例 | 先着順で処理する規律 | 先に来た仕事を先に処理 |
| 容量無制限・母集団無制限 | 標準的なM/M/1の追加仮定 | バッファ満杯による棄却や到着制限を考えない |
3. λ・μ・ρの3つを覚える
| 記号 | 読み方・意味 | 例 |
|---|---|---|
| λ(ラムダ) | 平均到着率:1時間に到着する件数 | 4.8 件/時 |
| μ(ミュー) | 平均サービス率:1時間に処理できる件数 | 12 件/時 |
| ρ(ロー) | 利用率=λ/μ | 4.8/12=0.4(40%) |
μ=12件/時なら、平均サービス時間は1/12時間=5分です。「40%稼働」は毎回2分働いて3分休むという意味ではなく、長期平均で窓口が仕事をしている時間の割合を示します。
λがμ以上になると、容量無制限の基本モデルでは安定した平均待ち時間を定義できず、列が長期的に増大します。ρ=1の公式への代入はゼロ除算になるため、安定状態の公式は使えません。
4. 最重要:平均待ち時間 Wq の公式
待ち始めてからサービスを受けるまでの平均時間をWq(queueのq)と書きます。M/M/1の安定状態では次の公式です。
どちらも同じ意味です。μは「件/時間」、1/μは「時間/件」なので、単位をそろえる必要があります。公式にはサービスを受けている時間は含まれません。
実用的なのは倍率比較です。μが変わらなければ平均サービス時間は共通なので、ρ/(1−ρ)の比だけで待ち時間の増加倍率が分かります。
5. 利用率25%と40%で比べる
平均サービス時間を5分に固定してみます。利用率25%での平均待ち時間は、5×0.25/0.75=約1.67分。40%では5×0.4/0.6=約3.33分です。
| 比較 | 利用率25% | 利用率40% |
|---|---|---|
| ρ/(1−ρ) | 1/3 | 2/3 |
| 平均サービス時間 | 5分 | 5分 |
| 平均待ち時間 Wq | 約1.67分 | 約3.33分 |
| 平均応答時間 W | 約6.67分 | 約8.33分 |
利用率は1.6倍(40/25)ですが、待ち時間は2倍です。この差こそ待ち行列で重要な非線形性です。処理能力や到着のばらつきが同じという条件で比較しています。
図中の数値はWq=5×ρ/(1−ρ)による理論値です。0.95のとき95分となり、利用率の増加と待ち時間の増加は比例しません。
6. 待ち時間 Wq と応答時間 W を混同しない
平均待ち時間Wqは、列で待つ時間だけです。平均応答時間W(系内時間、sojourn time)は、待ち時間にサービス時間を足します。窓口の性能計測ではどちらをSLAに採用するかが重要です。
サービス中の人数も含む「系内」の長さを求めるなら、Wを使います。たとえば注文を送信してから結果を受け取るまでの時間と、CPUの実行待ち時間だけとでは意味が異なります。
7. リトルの法則:人数と時間を結び付ける
安定したシステムでは長期平均の系内人数Lは、実効到着率λと平均系内時間Wの積で表せます。M/M/1に限らず、適切な定常性・保存関係の条件の下で広く成り立つ関係です。
| 指標 | M/M/1の式 | 何を表すか |
|---|---|---|
| Wq | ρ/[μ(1−ρ)] | 待ち行列内の平均待ち時間 |
| W | 1/(μ−λ) | サービスを含む平均系内時間 |
| Lq | ρ²/(1−ρ) | 待っている平均件数 |
| L | ρ/(1−ρ) | 待機中+サービス中の平均件数 |
たとえばλ=4.8件/時、Wq=1/18時間(約3.33分)ならLq=4.8/18≒0.267件です。平均件数は整数になる必要がありません。短い時間には0件、別の時間には複数件が並ぶからです。
8. 混雑に強いシステム設計の考え方
ITシステムでは「CPU利用率が高いほど効率的」と考えがちですが、ピーク時の待ち時間を小さくしたいなら余裕容量が必要です。利用率80%→95%でWqは、平均サービス時間の4倍から19倍へ増えます。
| 対策 | モデル上で変わる要素 | 注意点 |
|---|---|---|
| 処理の高速化・キャッシュ | μを引き上げる | キャッシュミスやロック待ちを別途考慮 |
| 到着の平準化・レート制限 | ピークλを抑える | レート制限は待ちを外部に移す場合がある |
| サーバーの並列化 | 窓口を複数化 | M/M/1でなくM/M/cなどで分析 |
| バックプレッシャー | 過負荷時の投入量を調整 | 棄却・再試行による負荷増に注意 |
| 監視・SLO設計 | 待ち時間やキュー長を把握 | 平均だけでなくp95・p99も測る |
9. 操作ラボ:利用率を動かして数式を体感
以下のラボではμとρを独立に変え、到着率λを自動計算します。比較する利用率を設定すると平均待ち時間の倍率が更新されます。最初は25%→40%、次に50%→90%を試してみてください。
INTERACTIVE LAB
M/M/1待ち行列・待ち時間計算ラボ
到着率と処理能力の関係を操作して、待ち時間が急増する様子を確かめましょう。単位は「1時間あたりの件数」です。
到着率 λ = μ × ρ = 4.80 件/時
平均サービス時間 = 5.00 分/件
ρ = λ/μ。待ち行列が安定する前提として λ < μ を維持します。
平均待ち時間 Wq
3.33 分
サービス開始まで
平均応答時間 W
8.33 分
待ち+サービス
待ち人数の期待値 Lq
0.27 人
列に並ぶ人数
系内人数の期待値 L
0.67 人
待ち+サービス中
待ち時間の倍率(比較対象 → 現在)
2.00 倍
25%:1.67 分 → 40%:3.33 分。同じサービス率で比較。
利用率と平均待ち時間の関係
縦軸は120分まで表示。グラフはサービス率を固定したM/M/1の理論値で、シミュレーション実測値ではありません。
系内人数の期待値を絵で見る(概念図)
表示人数は Lq を丸めたイメージです。Lqは長期平均であり、実際の列の人数は毎回変化します。
注意: このモデルはポアソン到着・指数サービス時間・窓口1台・安定状態などを仮定します。現実の受付、CPU、APIでは単純に当てはまらない場合があります。
10. 他の待ち行列モデルとの違い
| モデル | 到着 | サービス | 窓口 |
|---|---|---|---|
| M/M/1 | ポアソン | 指数分布 | 1 |
| M/M/c | ポアソン | 指数分布 | c台 |
| M/D/1 | ポアソン | 一定時間 | 1 |
| M/G/1 | ポアソン | 一般のサービス時間分布 | 1 |
M/D/1は処理時間が一定、M/G/1は処理時間の分布を一般化したモデルです。同じ到着率と平均サービス時間でも、サービス時間のばらつきが違えば待ち時間も変わります。サービス時間の分散を無視してM/M/1の結果を実測値と同一視しないことが重要です。
11. よくある疑問と間違い
Q. 利用率が40%なら6割は暇なのに、なぜ待つの?
長期平均では空き時間があっても、到着や処理時間がランダムに重なる瞬間があるためです。
Q. 利用率を2倍にしたら待ち時間も2倍?
一般には違います。待ち時間はρ/(1−ρ)に比例し、100%に近づくと急増します。
Q. 平均待ち時間が3分なら、全員が3分待つ?
いいえ。平均値です。すぐ処理される人も、かなり長く待つ人もいます。
Q. 利用率100%のWqを計算してよい?
いいえ。定常状態の公式はλ<μが前提です。ρ≥1では有限な定常平均待ち時間を扱えません。
12. まとめ
M/M/1待ち行列の中心は、到着率λ、処理率μ、利用率ρ=λ/μです。Wq=ρ/[μ(1−ρ)] を使えば、単位を合わせて待ち時間を算出できます。負荷が限界に近づくと遅延が非線形に増大することが、性能設計で余裕を持たせる理由です。
参考資料
- Queueing Theory— Encyclopedia of Mathematics
- M/M/1 queue— Wikipedia (mathematical summary)
- Introduction to Queueing Theory and Stochastic Teletraffic Models— Moshe Zukerman
- Little's Law— John D. C. Little / MIT