English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

访客
1 / ?
返回课程列表

L = λ × W

容量规划中最有用的公式

对于任何稳定的队列,无论其内部结构如何:L = λ × W,其中:

- L = 系统中的平均项目数量(正在处理中或等待中)

- λ (lambda) = 平均到达率(单位时间内的项目数)

- W = 每个项目在系统中停留的平均时间

几何解读:在一个轴上绘制 λ,在另一个轴上绘制 W。乘积 L 是它们所构成的矩形面积。容量规划就存在于这个矩形内部。

为何重要:三个量中的任意两个都可以确定第三个。测量吞吐量与延迟,即可得知占用率;测量占用率与吞吐量,即可得知延迟。该定律具有鲁棒性:它适用于 Web 请求、餐厅餐桌、超市排队以及 CPU 流水线,且无需任何修改。

三个具体示例:

- 一个 Web 服务处理 200 req/s,平均延迟为 50 ms(0.05 s)。L = 200 × 0.05 = 10 个正在处理中。

- 一家咖啡店每小时服务 60 位顾客,平均停留时间为 15 分钟(0.25 h)。L = 60 × 0.25 = 15 位顾客在店内。

- 一个后端池处理 1500 req/s,平均延迟为 200 ms(0.2 s)。L = 1500 × 0.2 = 300 个正在处理中。

规模影响:某一层的 worker 数量 / 线程数 / 连接数必须至少为 L 才能跟上负载。如果少于 L,意味着队列将不断增长。

利特尔定律作为面积:λ 在 x 轴,W 在 y 轴,L = 面积

你的 API 层处理 1,200 req/s 的流量,平均延迟为 80 ms。应用利特尔定律计算 L。然后解释以下情况会发生什么:(a) 如果流量翻倍至 2,400 req/s 且延迟保持不变,& (b) 如果流量保持在 1,200 req/s 但延迟上升至 160 ms。哪种场景产生的 L 更大,& 这在运维上意味着什么?

为什么利用率超过 80% 后延迟会激增

运营中最重要的曲线

在 x 轴上绘制利用率(0% 到 100%),在 y 轴上绘制平均等待时间。该形状是容量规划中最具影响力的曲线之一。

M/M/1 排队模型:对于具有泊松到达(随机)和指数服务时间(随机)的系统,平均等待时间为:

W_q = ρ / (μ × (1 - ρ))

其中 ρ 是利用率(0 到 1),μ 是服务速率。

曲线的形状:

- 当 ρ = 0.5(50% 利用率)时,等待时间很短(1 个服务时间)。

- 当 ρ = 0.7(70% 利用率)时,等待时间约为 2.3 个服务时间。

- 当 ρ = 0.8(80% 利用率)时,等待时间约为 4 个服务时间。

- 当 ρ = 0.9(90% 利用率)时,等待时间约为 9 个服务时间。

- 当 ρ = 0.95(95% 利用率)时,等待时间约为 19 个服务时间。

- 当 ρ = 1.0(100% 利用率)时,等待时间为无穷大。

拐点:在 80% 利用率附近,曲线急剧弯曲。在拐点以下,容量较为充裕;在拐点以上,延迟的增长速度超过利用率的增长速度。

实际解读:稳态下应将利用率目标设定为 70%,切勿达到 100%。这 30% 的“余量”并非浪费,而是实现有界延迟所必须付出的代价。

Queueing curve with knee at 80% utilization

跨越拐点进行容量规划

两种场景:

场景 A:10 个副本,CPU 使用率为 60%。延迟 p99 = 100 毫秒。

场景 B:同一集群因流量增长,CPU 使用率升至 90%。p99 = 600 毫秒。

相同的集群,相同的代码,仅利用率发生了变化。

请利用排队曲线的几何形状,解释为什么在利用率仅增加 1.5 倍的情况下,场景 B 的延迟却恶化了 6 倍。然后提出建议:团队应在什么利用率水平下增加容量?为什么选择该阈值,而不是等到实际违反 SLO(服务等级目标)时才行动?

容量规划与触发机制的结合

综合应用

现在你可以将利特尔法则(Little's Law)视为一个矩形,解读排队曲线及其拐点,并将两者与容量决策联系起来。

同时应用两者。

后端层处理 2,000 req/s,平均延迟为 50 ms,每个副本在 70% CPU 占用下的容量为 80 req/s。突发系数为 2x;你希望系统能够承受 3 个副本同时故障。

计算:(1) 使用利特尔法则(Little's Law)计算基线下的 L;(2) 使用课程公式(峰值 × 突发系数 / 单副本容量)+ 冗余量计算副本数量;(3) 当整个集群的观测利用率达到多少时应触发自动扩缩容,并利用排队曲线论证该阈值的合理性。

配套笔记

配套笔记

本几何学课程将无状态水平扩展主课程重新表述为定量几何问题。

下一个配套课程 geometry_of_ingress_egress_separation 将网络边界拆分重新表述为一个二分图,其中存在一个由该拆分移除的割点。

做得好。