nGrinder性能测试实践二

294 阅读2分钟

这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战

性能指标有哪些?

吞吐量、TPS、QPS、RT、CPU等等都是衡量系统性能的指标,如何利用这些指标判断系统是否健全,是否扛得住压力呢?在不同的产品体系里判断依据不同。

TPS代表每一秒内的事务处理数,这个数字越高,则表示系统性能越好,当请求量不断的累加累加,此时响应时间就会变长,TPS达到一个峰值后急剧下降,并且低于10,这时候代表程序处理事务的能力到了瓶颈,有可能是请求量堆积内存占满,系统无法正常运行,此时去看系统的CPU可能会被打满。

这就推出了一个计算公式,线程数=TPS*RT。 当然计算公式不会这么简单,假定一个购物app,日活跃用户为10w,根据二八原则,高峰时期的用户数量达到8w,而使用时间预估在5小时,每次用户从首页到下单用时平均为10分钟。

而我们要得到一个平均用户数,就可以得到平均用户数=8w 10/(560) 就得到了每秒的平均用户数,那么用户峰值怎么计算呢,如果你的系统有做埋点,那么可以直接得到每秒用户最大并发数,如果没有的话,就通过平均用户数预估总的用户数,即C`=平均用户数+3*根号 平均用户数。

以上的数据分析都是为了获得一个测试数据,即并发线程数,得到最大峰值的用户并发数后,在此基础上阶梯式的累加并发数量,观察TPS和RT的结果,当TPS达到最高值,急剧下降时,就是系统的瓶颈,可以酌情考虑是否做优化处理,比如增加数据库的索引,或者代码优化等等。

如图就是对一个接口做的性能测试,当用一定的并发数请求时,可以看到TPS非常低,RT达到1s以上,那么就可以判断这个时候系统处理事务是有问题的,并且查看RDS的cpu也达到了90%以上,更确定这个接口存在性能问题了。下一期讲针对性能问题给出解决方案。

屏幕快照 2021-11-10 上午12.13.34.png

屏幕快照 2021-11-10 上午12.13.49.png