性能测试(如何合理测量系统最大吞吐量?)
- 性能指标:吞吐量、延时以及并发度
并发度=延时*吞吐量 :表示在延时时间内可以完成的请求数
延时(latency):一般采用的是TP50,TP99。TP50表示处理50%的网络请求所需的最低耗时,TP99表示处理99%的 网络请求所需的最低耗时。由于平均值易受极端数值的影响所以不采用平均延时。=>表征系统的稳定性
吞吐量(TPS):表示单位时间内处理请求数.=>表征系统的处理速度
只有当系统处于稳定时,吞吐量才有意义.
-
-
性能测试不能全用平均值
由于平均值易受极端值的影响,因此一般采用百分点统计方法
-
吞吐量和延时需要挂钩
由于我们知道在性能测试时,在一定范围内,向系统并发发送请求量(或者称为负载生成率)越大时,吞吐量会持续上升,系统会变得越来越不稳定,响应时间的波动就会越来越剧烈。 响应时间会变得越来越大,吞吐量就不会上升
**根据吞吐量只有在系统稳定时候才有意义的原则,所以吞吐量的值必须要有响应时间来卡。**比如:TP99小于100ms的时候,系统可以承载的最大并发数.
Tip1:测量在不同的并发数上测试软件稳定的最大吞吐量方法:需要通过时延图找到时延波动不大的并发数,然后对应的吞吐量即为系统稳定时候的最大吞吐量。
-
如何合理地测量系统地最大吞吐量,所以我们必须要综合吞吐量(性能)、时延(系统稳定性 TP50/TP99),成功率做性能测试
测量在固定请求数(数据集)下不同的负载生成率的时延中测试软件稳定的最大吞吐量方法:需要通过时延图找到时延波动不大的并发数,然后对应的吞吐量即为系统稳定时候的最大吞吐量。具体如下:
-
首先我们必须定义一个时延是TP99还是TP50,建议TP99,以及成功率。
比如定义:TP99的响应时间必须在1ms之内,平均响应时间在1ms以内,100%的请求成功**(注意:定义时延的方法还有就是看时延时间波动大的点作为定义点)**
-
在这个响应时间的限制下,找到最高的吞吐量。测试用的数据,需要有大中小各种尺寸数据,并可以混合。最好使用生产线上的测试数据
--------------------------------------------------以上为压力测试-------------------------------------------------------------------------
--------------------------------------------------以下为浸泡测试-------------------------------------------------------------------------
-
在这个吞吐量下做Soak Test,比如:使用第二步测试得到的吞吐量作为负载生成率连续几天不间断的压测系统.
-
找到系统的极限值。比如:可以找到系统最长持续时间即压测开始到系统宕机的时间间隔。
干货总结
- 系统的吞吐量只有在系统稳定的时候才有意义
- 系统的稳定点=>时延波动程度变化剧烈的点
- 时延一般不取平均值而是用TP50或者TP99
参考:
http://www.360doc.com/showweb/0/0/1030020212.aspx
//www.360doc.com/showweb/0/0/1030020212.aspx