排队论计算器 - M/M/c 排队分析
计算等待队列的性能指标,包括利用率、平均队列长度、等待时间,以及 M/M/1、M/M/c 和有限容量模型的概率。
选择一个队列模型,输入到达率和服务率,然后点击“计算”查看完整的性能指标。
排队论计算器 - M/M/c 排队分析
计算等待队列的性能指标,包括利用率、平均队列长度、等待时间,以及 M/M/1、M/M/c 和有限容量模型的概率。
关于排队论
排队论是数学的一个分支,用来研究等待队列。它提供了用于预测系统行为的工具:到达是随机的,服务需要时间,而资源(服务器)是有限的。其应用涵盖电信(分组交换)、医疗(患者排班)、制造(机器排队)、交通(车流)和计算机科学(操作系统调度)。
Kendall 记号 A/S/c/K/N 用到达过程 (A)、服务时间分布 (S)、服务器数量 (c)、系统容量 (K) 和总体规模 (N) 来描述队列。最常见的是 M/M/c,其中到达和服务时间都服从指数(无记忆)分布——M 代表 Markovian(指数型)。这个计算器覆盖四个关键模型。
M/M/1 模型最简单:一个服务器,泊松到达(速率 λ)和指数服务时间(速率 μ)。系统只有在 ρ = λ/μ < 1 时才稳定。系统平均人数为 L = ρ/(1-ρ),平均系统时间为 W = 1/(μ-λ),这来自 Little 定律(L = λW)。
M/M/c 模型把它扩展为 c 个并行且相同的服务器。总服务能力为 c·μ,因此稳定性要求 ρ = λ/(c·μ) < 1。Erlang C 公式给出到达客户需要等待的概率:C(c,ρ) = (cρ)^c/(c!(1-ρ)) · P₀,其中 P₀ 是系统为空的概率。
M/M/c/K 模型增加了有限等候空间——系统容量 K 表示系统中最多允许的总客户数(服务中加等待中)。当系统已满时到达的客户会被阻塞(拒绝)。这个模型适用于餐厅、停车场和医院病房。对 M/M/1/K,阻塞概率为 P(K) = P₀ · (λ/μ)^K / K!。
M/M/c/N 模型假设潜在客户来源是有限的,总共有 N 个潜在客户。已经在系统中的客户不会再生成新的到达,因此随着系统被填满,有效到达率会下降。这个模型适合机器维修问题:N 台机器各自以速率 λ 发生故障,并以速率 μ 被修复。
Little 定律——L = λ_eff × W——是连接系统平均人数 (L)、有效到达率 (λ_eff) 和平均系统时间 (W) 的通用关系。只要系统稳定,它几乎适用于任何队列系统,不受分布假设限制,也是本计算器中所有性能公式的基础。
排队论示例
通过真实参数探索不同的排队场景。
| 场景 | 关键指标 | 解读 |
|---|---|---|
| 银行柜员:M/M/1,λ=10/小时,μ=12/小时 | ρ=83.3%,Lq=4.17,Wq=25 分钟 | 一名忙碌的柜员。平均队列有 4 人,等待 25 分钟。利用率很高——增加第二名柜员会大幅缩短等待时间。 |
| 呼叫中心:M/M/c,λ=25/小时,μ=10/小时,c=3 | ρ=83.3%,Lq≈3.51,Wq≈8.4 分钟 | 三名客服共同分担工作。总服务能力为 30/小时。Erlang C 公式给出 Lq≈3.51,平均等待时间 Wq≈8.4 分钟。 |
| 餐厅:M/M/c/K,λ=15/小时,μ=8/小时,c=2,K=20 | ρ=93.75%,阻塞概率≈2.1% | 有限座位将系统总人数限制为 20 人。高峰时段约有 2% 的到店顾客会被拒绝。 |
如何使用排队论计算器
- 从下拉菜单中选择队列模型:M/M/1 适用于单服务器,M/M/c 适用于多个并行服务器,M/M/c/K 适用于有最大容量限制的场景,M/M/c/N 适用于有限总体来源。
- 输入到达率 λ(单位时间内平均到达的客户数)和服务率 μ(单个服务器每单位时间可处理的平均客户数)。
- 对于 M/M/c、M/M/c/K 和 M/M/c/N 模型,还需要输入服务器数量 c。M/M/c/K 还要输入系统总容量 K;M/M/c/N 还要输入有限总体规模 N。
- 点击“计算”。结果区域会显示服务器利用率 ρ、系统为空的概率 (P₀)、平均队列长度 (Lq)、平均系统长度 (L)、平均排队等待时间 (Wq) 以及平均系统逗留时间 (W)。
- 如果系统不稳定(到达率超过服务能力),会显示错误信息——请增加 c 或 μ,或降低 λ 以获得稳定配置。
排队论常见问题
服务器利用率 ρ 是什么意思?
服务器利用率 ρ = λ / (c·μ) 表示每台服务器平均忙碌的时间占比。利用率 0.85 意味着服务器有 85% 的时间在工作。当 ρ 接近 1 时,队列会无限增长;当 ρ > 1 时,系统不稳定,长期来看无法承受工作量。
什么是 Little 定律?
Little 定律指出 L = λ·W,其中 L 是系统中的平均客户数,λ 是有效到达率,W 是每位客户在系统中停留的平均时间。它适用于任何稳定系统,不受到达或服务分布影响,是排队论中最强大的结果之一。
Erlang C 公式是用来做什么的?
Erlang C 公式用于计算 M/M/c 队列中到达客户需要等待的概率(即所有服务器都忙时的概率)。它是多服务器队列中 Wq 公式的基础,也被广泛用于呼叫中心排班,以确定满足服务水平目标所需的座席数量。
M/M/c/K 和 M/M/c/N 有什么区别?
M/M/c/K 将系统中的客户总数(包括等待和服务中的客户)限制为 K——超过 K 的到达会被拒绝(阻塞)。M/M/c/N 则描述一个封闭系统,潜在客户总数只有 N;当客户进入队列后,其余人群的有效到达率会下降。
如何降低队列系统的平均等待时间?
最有效的手段是:提高服务率 μ(更快的服务器)、增加服务器数量 c(并行通道),或降低波动性。反直觉的是,把利用率从 90% 降到 80% 往往能让队列长度减半,因为当 ρ 接近 1 时,队列长度会超线性增长。
M/M 队列在真实世界中现实吗?
M/M 模型假设到达服从泊松分布、服务时间服从指数分布,这对电话呼叫、Web 请求和随机客户到达等许多真实系统来说是合理近似。对于非指数服务时间,也有更一般的 M/G/1 或 G/G/c 模型,但 M/M 结果仍可为容量规划提供数量级上准确的估计。