待ち行列理論(M/M/1)をやさしく図解 — 利用率・待ち時間の求め方

公開: 2026年7月 カテゴリ: 基礎理論

「サーバーの利用率が上がると、なぜ急に応答が遅くなるの?」——その答えが待ち行列理論にあります。ATMの行列も、サーバーへのリクエストも、同じ数式で説明できます。この記事では、基本のM/M/1モデルを、利用率・待ち時間の公式と計算例で図解します。

待ち行列とは — 到着・待ち・サービス

待ち行列は、①客が到着し、②窓口が空くまで並んで待ち、③サービスを受けて出ていくという流れをモデル化したものです。銀行のATM、レジ、そしてサーバーへのリクエスト処理も同じ構造。「単位時間に何人来るか(到着率)」と「単位時間に何人さばけるか(サービス率)」のバランスで、待ち時間が決まります。

待ち行列:到着 → 待つ → 窓口で処理 → 退出 到着 λ(到着率) 待ち行列 窓口 μ(サービス率) 退出 窓口が1つ = M/M/1
図1: 到着率λと、窓口の処理能力(サービス率μ)のバランスで待ち時間が決まる

M/M/1モデルとは

M/M/1は、待ち行列のもっとも基本的なモデルです。3つの記号にはそれぞれ意味があります(ケンドールの記号)。

位置記号意味
1つ目M到着がランダム(客がバラバラに来る)
2つ目Mサービス時間がランダム(処理時間がバラつく)
3つ目1窓口が1つ

つまりM/M/1は「ランダムに来る客を、1つの窓口で順番に処理する」もっともシンプルなモデルです。基本情報ではこのM/M/1が扱われます。

利用率 ρ — 窓口の忙しさ

まず求めるのが利用率 ρ(ロー)。窓口がどれくらい忙しく働いているかの割合で、到着率λ ÷ サービス率μ で計算します。

利用率 ρ = λ(到着率) ÷ μ(サービス率)

例:1分間に平均3件のリクエストが来て(λ=3)、窓口は1分間に平均4件処理できる(μ=4)なら、ρ=3÷4=0.75(75%が稼働)。ρが1以上だと、来る量が処理能力を超えるので行列が無限に伸びます。安定して回すには ρ<1 が必須です。

平均待ち時間・平均応答時間の公式

M/M/1では、利用率ρと平均サービス時間(1件の処理にかかる平均時間 = 1÷μ)から、待ち時間が求まります。

求めるもの公式
平均サービス時間 Ts1 ÷ μ
平均待ち時間 Tw(並んで待つ時間)ρ ÷ (1 − ρ) × Ts
平均応答時間 T(待ち+処理)Ts ÷ (1 − ρ) (= Tw + Ts)

先ほどの例(λ=3、μ=4、ρ=0.75)で計算してみます。平均サービス時間 Ts=1÷4=0.25分。

平均待ち時間 Tw = 0.75 ÷ (1 − 0.75) × 0.25 = 0.75 ÷ 0.25 × 0.25 = 0.75分
平均応答時間 T = 0.25 ÷ (1 − 0.75) = 0.25 ÷ 0.25 = 1分

「処理自体は0.25分なのに、混雑のせいで待ちを含めると平均1分かかる」という結果です。

利用率が上がると待ち時間が急増する

ここが最重要ポイント。公式の分母が (1 − ρ) なので、ρが1に近づくほど分母が小さくなり、待ち時間が跳ね上がります。「利用率をあと少し上げただけで、体感が急に悪化する」現象の正体です。

利用率ρが1に近づくと、待ち時間が急上昇する 利用率 ρ →(0 … 1) 待ち時間 → 0.5 0.8 ≒1.0 ρ→1 で急激に発散
図2: 待ち時間 ∝ ρ/(1−ρ)。0.5→0.8→0.9…と上がるほど、増え方が加速する

数値で見ると一目瞭然です(Ts=1として、待ち時間 Tw=ρ/(1−ρ))。

利用率 ρ1 − ρ待ち時間 Tw(Ts=1)
0.50.51.0
0.80.24.0
0.90.19.0
0.950.0519.0

利用率が0.5から0.9になると、待ち時間は9倍。だからサーバー設計では「利用率を上げきらず、余裕を残す」ことが重要になります。

基本情報技術者試験ではこう出る

「利用率ρ=λ/μを求める」「平均待ち時間・平均応答時間を計算する」「利用率が上がると待ち時間がどうなるか」が定番です。押さえるべきは、ρ=到着率÷サービス率平均応答時間=サービス時間÷(1−ρ)、そしてρが1に近いほど待ち時間が急増(分母が1−ρ)という3点。ネットワークやサーバーの性能設計に直結する考え方で、稼働率と信頼性設計ともあわせて押さえると、システムの性能・信頼性の全体像がつかめます。

よくある質問

Q. 到着率λ・サービス率μの単位は?
A. 「単位時間あたりの件数」です(例:1分あたり3件なら λ=3/分)。λとμの単位をそろえておけば、ρ=λ/μ は単位が打ち消し合って無次元(割合)になります。サービス時間 Ts=1/μ は「1件あたりの時間」になります。

Q. 窓口が複数(M/M/2など)だとどうなる?
A. 窓口を増やすと、同じ到着率でも1つあたりの負荷が下がり、待ち時間が大きく改善します(スーパーの複数レジと同じ)。ただし計算式は複雑になり、基本情報では原則窓口1つのM/M/1が扱われます。

Q. 実務ではどう使う?
A. サーバーやネットワーク機器のキャパシティ設計に使います。「ピーク時の到着率でも利用率が高くなりすぎないか(=待ち時間が許容範囲か)」を見積もり、余裕を持った台数・性能を選ぶ根拠にします。

まとめ

待ち行列理論(M/M/1)の要点は3つ。利用率ρ=λ/μ平均応答時間=サービス時間÷(1−ρ)、そしてρが1に近づくほど待ち時間が急増する。「利用率を上げすぎると急に遅くなる」という現象を、数式で説明できるようになります。性能設計の土台として押さえておきましょう。

関連ページ: 稼働率と信頼性設計計算量とO記法記事一覧