[性能测试day2]常用指标

常用性能测试指标

主要指标:并发用户数、响应时间、最高吞吐量、极限吞吐量、成功率、性能拐点、系统稳定性、系统健壮性、低吞吐量和网络小包

并发用户数

  • 业务层面:实际使用系统的用户总数
  • 后端层面:同时向服务器发送请求的数量
  • 潜在用户数:拥有系统账号的用户总数
  • 业务并发用户数:登录了系统
  • 实际并发用户数:真正对服务端产生了压力。取决于业务并发用户数+用户行为模式(可能是停在界面未操作/进行了服务端相关操作等…)

分析并发数的关键:分析用户的行为模块

  • 例如:准点活动、商品秒杀、常规时间段…
  • 根据系统日志进行分析
  • 行业类似系统的统计、多方收集到的系统用户信息

响应时间

  • 前端展示时间:客户端收到服务器返回的数据后,渲染页面所消耗的时间
  • 系统响应时间:发起请求到处理完成的时间(一般更关注该项)
  • 标准:建议是TP95或以上,一般读不超过200ms,写不超过500ms

最高吞吐量

  • ThroughPut TPS 在目标响应时间要求下,系统可支撑的最高吞吐量。
  • 计算方式:requests/second、pages/second(考虑HTTP或业务层面) bytes/second(考虑系统/网络层面)

极限吞吐量

  • 阶梯式增加并发压力,找到系统的极限值。比如:在成功率 100% 的情况下(不考虑响应时间的长短),系统能坚持10分钟的吞吐量。

成功率

  • 在关注QPS和响应时间的同时,还要关注成功率。如果QPS和响应时间都满足性能要求但请求成功率只有 50%,用户也是不会接受的。

性能拐点

  • 服务的性能临界点,当超过临界点时,吞吐量非线性下降,响应时间指数级增加,成功率降低。
    找到出现性能拐点的主要原因: 基于性能拐点主要原因设置高危性能报警线。此为高风险注意事项,因为一旦达到性能拐点,有可能会出现雪崩现象,造成极其严重的事故。

系统稳定性

  • 保持最高吞吐量(目标响应时间下的最高吞吐量),持续运行 7*24 小时。然后收集 CPU,内存,硬盘/网络 IO,等指标,查看系统是否稳定,比如,CPU 是平稳的,内存使用也是平稳的。那么,这个值就是系统的性能。

系统健壮性

  • 做 Burst Test。用第二步得到的吞吐量执行 5 分钟,然后在第四步得到的极限值执行 1 分钟,再回到第二步的吞吐量执行 5 钟,再到第四步的权限值执行 1 分钟,如此往复个一段时间,比如 2 天。收集系统数据:CPU、内存、硬盘/网络 IO 等,观察他们的曲线,以及相应的响应时间,确保系统是稳定的。

低吞吐量和网络小包

  • 低吞吐量可能会导致 latency 上升,比如 TCP_NODELAY 的参数没有开启会导致 latency 上升(详见 TCP 的那些事),而网络小包会导致带宽用不满也会导致性能上不去,所以,性能测试还需要根据实际情况有选择的测试一下这两个场景。
上一篇:后端开发记录day2


下一篇:第四周Day2 —— Python的re模块和面向对象