压力测试简介

目录

什么是压力测试

单接口压测是为了能够在开发阶段对单个接口进行性能测试,快速了解接口的承载能力、发现性能瓶颈,在开发早期就能发现问题,消除性能风险。

另外,当业务在生产环境遇到实际接口请求瓶颈时,通过模拟真实的并发环境,也是一种快速寻找问题的方式。

如何衡量接口性能

CPU、显卡好,能承受的IO是高的;网卡大,能承受的流量很大。性能与硬件是有关系的。

  • 衡量性能的指标有:
    • 并发数
    • TPS
    • MRT、RT90值、RT99值 (RT:Response time)
    • 资源使用率(CPU、内存、网络、磁盘)

性能指标

并发数:系统同时处理的请求数量。 吞吐量:每秒钟成功处理的事务数/请求数。吞吐量的衡量指标包括:

  • TPS: Transactions Per Second,每秒钟系统能够处理的事务数,即每秒钟系统能够处理的请求数量。
  • IOPS: Input/Output Operations Per Second,每秒钟系统能够处理的输入/输出请求数量。
  • QPS: Queries Per Second,每秒钟系统能够处理的查询请求数量。
  • BPS: Bytes Per Second,每秒钟系统能够处理的字节数量。

响应时间

RT:Response Time,响应时间,即从请求发出到收到响应的时间。RT的衡量指标包括:

  • MRT: Mean Response Time,平均响应时间,即所有请求的响应时间的平均值。
  • RT90: Response Time 90,90%请求的响应时间小于RT90。
  • RT99: Response Time 99,99%请求的响应时间小于RT99。
  • STD: Standard Deviation,标准差,即所有请求的响应时间的标准差。STD越小,系统的响应时间越稳定。
  • MAX 最大值,长尾时间。

资源使用率

  • 系统资源:CPU/内存/磁盘IO/网络IO
  • 应用资源:队列/锁/GC(垃圾回收)/

性能测试流程

压测结果的影响因素

高并发结果很容易受外界因素影响,压测时需要尽量减少外界因素影响。

影响压测结果外界因素有 本机句柄数限制,dns解析速度,网络质量,服务端连接数限制等等 。例如使用1w并发,很容易出现超过本机最大句柄数限制(一般最大限制1024),超过句柄数限制的请求会因为句柄数受限导致连接失败。

因此选择 合适并发数对测试接口性能非常重要 ,并非并发数越大越好。

实际实践中建议并发数先在10,100,500,1000左右分别测试下,如果失败率小于1%,再考虑逐步增加并发数量。 只有增加并发每秒请求数量能持续增加才是健康的使用方式。当并发数增加到一定数量后,接口响应能力不再增加或者错误数变高,这时候再增加并发量是无效的

测试阶段

20230508112611

a点:性能期望值

b点:高于期望,系统资源处于临界点 c点:高于期望,性能处于拐点,系统能承受的最大的TPS值 d点:系统资源出现瓶颈,性能下降

  • 性能测试:通常在a点和b点之间进行
  • 负载测试:b点到c点
  • 压力测试:b点到d点,压倒最高点c,再加大线程,TPS反而下降,得出的c点即为系统能承受的最大的TPS值
  • 稳定性测试:a-b,不要超过c(超过c是没有意义的)

测试指标

做好监控:把一切监控起来

  • 性能指标:TPS、MRT、RT90值、失败率
  • 资源监控: 监控点:CPU、内存、网络、磁盘 监控机器:压测机器、nginx、应用服务、数据库、缓存、消息队列
  • 日志监控:检查错误、异常,及时发现错误

性能测试工具Apipost

20230508113642

20230508113728

参考链接

  1. 发现一款后端程序员必备的压测工具,十分钟就能上手,yyds - 掘金 (juejin.cn)
  2. 8-26接口压力测试-2性能测试入门 - singleSpace - 博客园 (cnblogs.com)

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦