正确地认识性能指标
- 平均响应时间不可靠
6组响应时间数据1,1,1,1,1,100的平均值为17.5,明显不能体现统计上的响应时间结果,而100那组数据明显是可以忽略的。
除了平均响应时间,还应该关注中位数、90%、99%分布统计,也就是把响应时间按照从小到大进行排序,中位数表示50%的响应时间。百分比分布统计可以很好的反应响应时间的分布情况。 - 吞吐量要和响应时间挂钩
系统的吞吐量和响应时间遵循下面的变化曲线,要测试系统的吞吐量实际就是测试图中竖虚线所在位置的值,此时再加大压力吞吐量开始下降,响应时间也开始快速上升。 - 系统并发量要和错误率挂钩
如果错误率不能达标,并发量再高也没有意义的
如何严谨地开展性能测试?
- 确定响应时间、错误率指标,如99%(TP--top percentile)响应时间<1秒,错误率小于0.5%;
- 在响应时间指标的限制下,测出系统的吞吐量(QPS vs TPS);
- 使用上步测出的吞吐量,在此压力下测试系统稳定性,持续7天不间断的压测,期间收集CPU、内存、硬盘/网络IO等指标,观察CPU、内存如果平稳,那么这个值就是系统的性能;
- 在错误率指标的限制下,测试出系统的极限值,不考虑响应时间是否超标;如错误率<0.5%限制下,不考虑响应时间,系统能够坚持10分钟的吞吐量;
- 突发测试;如在步骤2的吞吐量压力下,持续5分钟;完后在步骤4的极限值压力下,持续1分钟;如此反复执行执行一段时间,如2天;期间收集CPU、内存、硬盘/网络IO等指标,观察它们的曲线、响应时间,系统是否出现宕机等问题;