软件性能工程(10)-性能分析中科特尔法则(Little's Law)与其衍生法则的应用

科特尔法则 Little’s Law

科特尔法则(Little’s Law)是 John Little 教授在 1961 证明并以他的名字命名的公式。Little’s Law 是排队论中的重要公式,因现实世界中排队模型的应用非常广泛这也意味着此公式的应用也非常广泛。在性能分析中我们通过 Little’s Law 定位性能瓶颈,用模型预测随负载增加对业务性能的影响,以及通过容量规划提前为业务扩张做准备。在现实生活中凡是排队等待的情况都可以通过 Little’s Law 进行量化与优化(如银行,医院的排队取号)。

Little’s Law 通过一个简单的公式量化了吞吐率与服务时间及等待队列长度三者之间的关系,简单公式的背后隐藏着巨大的信息量。

本文以最简单的排队模型介绍 Little’s Law,如下图所示

Little’s Law

假设存在一个系统由单输入与单输出单元组成并且只有一个处理单元。当输入到系统中的请求速度快于处理单元处理速度时系统会出现排队等待情况。

Little’s Law 公式

L=λ∗W

队列中平均任务数 = 平均任务抵达率 * 平均任务处理时间(含队列等待时间)

Little’s Law 公式

Little’s law 中不太好理解的参数是队列中平均任务数,请参考上图中的绿色部分 A(T)。A(T)为 T 观察时间范围内,已经入队到队列中的所有任务等待时间的总和,也可以理解为绿色部分的面积。当由 n(t)导致的不规则绿色区域抹平成长方形时,设 T 为长方形的宽,队列中的平均任务数为高,则 A(T) = T * 队列中平均任务数。设 L(T) = A(T) / T,则 L(T)等同于平均等待任务数(也称为平均队列长度)。

公式注解:

  1. Little’s law 的应用场景非常广泛,它既可以解释单一的系统部件(磁盘,CPU)也可以解释由多个子系统组成的复杂系统(网页界面响应时间)。

  2. 当平均队列长度变大时请求抵达率也会随着变大。只有系统待要处理的任务变多时才有可能使系统以最高吞吐率模式工作并榨干硬件性能,但他的反面是系统中入队等待任务变多,如果这个任务是跟用户体验相关时会表现为操作响应时间的变长(参见下面的响应时间部分内容)。

  3. 系统处理单元的平均服务时间变长时会导致等待队列的变长,优化等待队列长度的方向有:

    1. 缩短平均服务时间

    2. 减少任务请求量

  4. 本文介绍的是单一处理模型,如涉及多个并行处理模型时优化方法不止上面两种。

Little’s Law 衍生应用 - Utilization Law 使用率的计算

Utilization Law 公式

U=X∗St

使用率 = 吞吐率 * 服务处理时间

当使用率不超过 100%时 Utlization law 其实是 little’s Law 的一个变种,这种情况被称为 Job flow balance(此时抵达率与吞吐率相同)。

公式注解:

  1. 吞吐率不变的情况下服务处理时间的提升导致使用率的提升。

  2. 在使用率不变的前提下要使吞吐率上升需要缩短服务处理时间。

在磁盘性能老化分析时有时候会遇到磁盘使用率变化不大但磁盘吞吐率反而降低了。这是因为老化(磁盘长时间使用后)后的磁盘可能会出现文件碎片化。在读取以碎片化形式存储在磁盘各个地方的文件时可能会加长磁盘寻道时间(物理磁头转动时间),这个操作会体现在磁盘服务处理时间上,通过公式可知此时磁盘使用率变化不大但因处理服务时间变长导致了吞吐率的下降。

写在最后

  1. 性能优化属于工程领域,工程领域就需要通过量化方法评判优化结果的好与坏。

  2. 在数据分析时除了通过简单美妙的公式描述关系之外还可以通过数据可视化方法得出”数据模式”上的新发现。人的大脑善于从图形化内容中找出相互间的关联性,这个优点也可以用于数据分析。

  3. 通过现象看到本质,这应该是我们平时要锻炼的思维模式。将本质转变成高度抽象的公式是不错的方法之一。

参考

  1. http://web.mit.edu/~sgraves/www/papers/Little%27s%20Law-Published.pdf //John D.C. Little 发表在 MIT 刊物上关于 Little’s law 的论文

  2. https://en.wikipedia.org/wiki/John_Little_(academic) // John Little 介绍

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值