待ち行列理論(M/M/1)をやさしく図解 — 利用率・待ち時間の求め方
「サーバーの利用率が上がると、なぜ急に応答が遅くなるの?」——その答えが待ち行列理論にあります。ATMの行列も、サーバーへのリクエストも、同じ数式で説明できます。この記事では、基本のM/M/1モデルを、利用率・待ち時間の公式と計算例で図解します。
待ち行列とは — 到着・待ち・サービス
待ち行列は、①客が到着し、②窓口が空くまで並んで待ち、③サービスを受けて出ていくという流れをモデル化したものです。銀行のATM、レジ、そしてサーバーへのリクエスト処理も同じ構造。「単位時間に何人来るか(到着率)」と「単位時間に何人さばけるか(サービス率)」のバランスで、待ち時間が決まります。
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÷μ)から、待ち時間が求まります。
| 求めるもの | 公式 |
|---|---|
| 平均サービス時間 Ts | 1 ÷ μ |
| 平均待ち時間 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に近づくほど分母が小さくなり、待ち時間が跳ね上がります。「利用率をあと少し上げただけで、体感が急に悪化する」現象の正体です。
数値で見ると一目瞭然です(Ts=1として、待ち時間 Tw=ρ/(1−ρ))。
| 利用率 ρ | 1 − ρ | 待ち時間 Tw(Ts=1) |
|---|---|---|
| 0.5 | 0.5 | 1.0 |
| 0.8 | 0.2 | 4.0 |
| 0.9 | 0.1 | 9.0 |
| 0.95 | 0.05 | 19.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に近づくほど待ち時間が急増する。「利用率を上げすぎると急に遅くなる」という現象を、数式で説明できるようになります。性能設計の土台として押さえておきましょう。