尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

马克·布鲁克揭秘负载均衡系统经济学:M/M/c 模型延迟随服务器数量渐近改善

马克·布鲁克揭秘负载均衡系统经济学:M/M/c 模型延迟随服务器数量渐近改善
📅 发布时间:2026/6/20 12:08:12

关于我

我叫马克·布鲁克(Marc Brooker),喜欢打造实用且酷炫的东西,热衷于构建大型项目。此外,我还涉足机械加工、焊接、烹饪和滑雪等领域。我是西雅图亚马逊云服务(AWS)的一名工程师,主要从事自主人工智能(agentic AI)相关工作,尤其关注自主人工智能的安全性和策略。在此之前,我参与过 EC2、EBS、数据库、无服务器计算以及无服务器数据库等项目。本博客所表达的观点仅代表我个人。

链接

我的出版物和视频
Mastodon 账号 @marcbrooker
Twitter 账号 @MarcJBrooker
这个博客是由人工智能撰写的吗?

负载均衡系统的惊人经济学

M/M/c 模型的表现或许和你想的不一样。假设有个系统,有 `c` 台服务器,每台只能处理一个并发请求,且无内部队列。这些服务器在一个有无限队列的负载均衡器后面。平均来说,无限数量的客户端每秒向负载均衡器发 `c * 0.8` 个请求。也就是说,我们随 `c` 增加线性提高请求负载,让每台服务器负载恒定。请求到服务器后,平均要一秒处理。那客户端观察到的平均请求时间会怎么随 `c` 变化呢?
选项 A:随着 `c` 增加,平均延迟快速降低,渐近趋近于一秒(即排队时间趋近于零)。选项 B:保持恒定。选项 C:呈线性改善。选项 D:延迟呈线性恶化。凭直觉,你觉得延迟会是哪条曲线呢?

我在 Twitter 上问了粉丝同样的问题,得到了有趣的不同结果:深入分析这个问题能找出正确答案。首先,了解相关术语。在排队论里,这是个 M/M/c 排队系统,即泊松到达过程、指数分布的客户端服务时间和 `c` 台后端服务器。在电信流量工程中,它是 埃尔朗(Erlang) 延迟系统(或者,因术语多样,也叫 M/M/n)。我们能用排队论的经典结果——埃尔朗 C 公式 _E 2,n(A)_ 来分析这个系统,该公式根据服务器数量(`n` 即 `c`)和提供的流量 `A` 计算传入客户请求进入队列(而非立即处理)的概率。具体细节可参考 《电信流量工程手册》 第 194 页。以下是该曲线的基本形状(用相同参数):
沿着蓝色线到半饱和点(提供的负载为 2.5 rps),能看到概率约为 13%。再看紫色线的半饱和点(5 rps),概率仅为 3.6%。所以半负载时,5 台服务器的系统能不排队处理 87% 的流量;负载和服务器数量都翻倍时,能不排队处理 96.4% 的流量,意味着只有 3.6% 的请求会有额外延迟。

事实证明,这种改善确实渐近趋近于 1。Twitter 投票的正确答案是 A。用平均值衡量延迟有争议(尽管 也许不应该如此)。为避免争议,我们得知道百分位数是否以相同速率改善。用封闭形式计算有点复杂,但这个系统简单,我们能用蒙特卡罗模拟绘制结果。结果如下:
这完全是个好消息。中位数(p50)和平均线吻合得好,高百分位数(99 分位和 99.9 分位)也有类似形状,没隐藏问题。

这对云计算和服务经济也是好消息。随着 `c` 增大,相同利用率下能有更好延迟,或相同延迟下实现更高利用率,且每台服务器吞吐量不变。这不仅对大型服务有利,因为大部分好处在 `c` 相对较小时就有了。在和规模及分布式系统相关的问题中,很少有随 `c` 增加变容易的,这就是其中一个。

有一些合理的后续问题。我们随意选的 0.8 这个值会影响结果稳定性吗?答案是肯定的,但有一定限度。一旦平均到达率超过系统处理请求的能力,队列就会无限增长,延迟也趋于无穷大。在我们例子中,请求负载超过 `c` 时就会这样。更一般地说,这个系统要稳定,`λ/cμ` 必须小于 1,其中 `λ` 是平均到达率,`μ` 是服务器处理请求的平均时间。

M/M/c 模型中泊松到达和指数服务时间的假设对典型服务合理吗?我觉得虽不完全对,但有一定合理性。指数服务时间尤其不准,实际服务更接近对数正态分布,但这可能不重要,以后再详细讨论。

更新:丹·波茨(Dan Ports)在我的 Twitter 帖子下回复了一个精彩的 Twitter 线程,指向了 SoCC’14 的 《尾部延迟的故事:硬件、操作系统和应用层的尾部延迟来源》,该文章探讨了现实中的这种效应。

脚注

1. 有一定限度。一旦平均到达率超过系统处理请求的能力,队列就会无限增长,延迟趋于无穷大。在我们例子中,请求负载超过 `c` 时就会这样。更一般地说,这个系统要稳定,`λ/cμ` 必须小于 1,其中 `λ` 是平均到达率,`μ` 是服务器处理请求的平均时间。

<< 返回博客索引

相关文章

2021 年 8 月 5 日 » 延迟悄然来袭
2021 年 4 月 19 日 » 尾部延迟的影响可能比你想象的更大
2026 年 6 月 19 日 » 认识爱丽丝。爱丽丝很没耐心。

其他文章

2015 年 5 月 24 日 » 碳酸钠与拉面化意大利面

相关新闻

  • Java XML解析安全指南:从XXE漏洞原理到实战防御
  • AMD Radeon 780M Windows下跑ComfyUI实战指南
  • 2026年6月最新劳力士中国官方售后客服热线地址及服务网点查询 - 劳力士服务中心

最新新闻

  • 基于网格的疫情传播模拟器:从SIR模型到ABM的实践解析
  • 2026 年唐山厨卫屋顶防水修缮三家对比测评 吉修匠 99.8 分稳居榜首 - 吉修匠
  • 嵌入式GUI开发实战:emWin进度条、二维码与单选按钮控件详解
  • 工具失败时怎么办:重试、回滚、人工确认和风险提示
  • 从麦克斯韦方程到仿真工具:FDFD光子仿真工具箱构建指南
  • 在M系列Mac上运行Windows程序的5个简单步骤:Whisky完全指南

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号