压力测试关键指标

2019/09/07

理解压测关键指标

无论使用何种压测工具,每次压测后都可以得到这 3 个关键指标:并发连接数,吞吐量(QPS),延迟。

1.并发连接数

要理解并发连接数,首先要理解连接,它是指客户端向服务端发起请求时建立的 TCP 连接,那并发连接数就是在一段时间内客户端与服务端的 TCP 连接数。如,C10K问题,就是指服务端一秒能处理一万个连接的能力。

在压测中,并发连接数这个参数到底有什么意义?想象一下你正在车站排队买票,车站只开了一个售票窗口,队伍越来越长,车站里甚至出现了拥堵,站长看到拥堵的情况后增加了几个窗口,于是队伍迅速地缩短了几倍,你也很快买到了车票,车站人流也顺畅了很多。

你看,这就是并发窗口数发挥了作用。

并发窗口数与并发连接数是一样的道理,窗口数影响售票数,而连接数影响请求数。

所以,在压测时,我们可以通过增加并发连接数来增大压测的请求数,通过不断地加压来测试软件的最大处理能力。

这就像在举重比赛中,不断增加杠铃的重量,哪个选手能坚持到最后,就获得冠军。

2.吞吐量/请求数

吞吐量/请求数是指一段时间内,客户端向服务端发起请求并获得响应的数量。

3.延迟/响应时间

延迟/响应时间一般是指一段时间内,请求从发起到得到响应消耗的平均时间。

出于准确性的考虑,我们还会综合考量延迟分布情况,一般是从前 99%、前 90%、前 75%、前 50%这几个分区进行统计。进行分区统计的原因在于,当少数的慢请求延迟非常高时,会直接影响平均延迟,这时平均延迟就无法准确地反应整体响应指数了,所以分区统计提供了更全面可靠的参考系。

分析性能瓶颈

通过逐步增加并发连接数,在多次加压之后,我们可以绘制出“并发连接与吞吐量趋势图”,和“延迟与吞吐量趋势图”:

结合这两张图,我们能够很直观地解读出软件系统的性能瓶颈。

在“并发连接与吞吐量”的图中,吞吐量的峰顶处对应的并发连接数,就是系统能处理的极限并发连接数了。

而在“延迟与吞吐量”的图中,在吞吐量颓势未显时达到设定的最大延迟处,就是系统的最大吞吐量了。

下面来简单总结一下,并发连接数、吞吐量、延迟之间的关系:

  • 并发连接数与吞吐量成正比。如果随着并发数的增加,吞吐量不再提升甚至开始下降,说明已经达到系统吞吐量的极限值。

  • 吞吐量与响应延迟成正比。当响应时间触达阈值,此时的吞吐量为系统的极限值。

  • 吞吐量极限需要综合考虑并发连接数和延迟的数值。

  • 并发连接数是影响吞吐量的关键性变量,通过阶段性提高并发连接数测试出系统吞吐量的极限。

  • 当然,以上讨论的前提是,系统请求成功率符合预期(一般是 95% 以上)。

全文完

Post Directory