为何设置了300虚拟用户,实际压测过程中并未能达到?

本文介绍为何设置了300虚拟用户,实际压测过程中并未能达到的解决方案。

背景信息

  • 虚拟用户模式:请参见虚拟用户、RPS、TPS的解读

  • 虚拟用户数:现实系统中同时操作业务的用户数量,在性能测试工具中一般称为虚拟用户(Virtual User)。最大虚拟用户数,即在压测中最多多少用户同时对压测业务产生压力。

    说明

    虚拟用户是基于业务会话的,虚拟用户数是业务会话中所有API虚拟用户之和。假设业务会话的虚拟用户是200,包含了7个API,发起压测时,PTS将按顺序对7个API进行压测,7个API的总虚拟用户为200。由于每个API压测时响应时间不一致导致每个API虚拟用户不一样,API的响应时间少则虚拟用户数小。

  • RPS:Request Per Second,每秒请求数。RPS是从服务端的视角衡量系统每秒处理的请求数,一个虚拟用户可能产生多个请求。

问题描述

在虚拟用户模式下,设置了最大300虚拟用户,但压测中虚拟用户并没有达到设置的值。

原因分析

由于压测的施压机计算资源有限,同时为了保证压测流量更稳定,在施压时对RPS有一定的限制(按量抵扣资源包不同版本的虚拟用户有相应的RPS上限)。RPS如果到达上限,即不会增加更大的压力。

例如,将最大虚拟用户设置为300时,在施压配置页面您可以看到对应的RPS限制为4000。image

例如,平均RPS(总请求数/总压测时长)已经达到4001(4001是采集周期内计算的合理误差),在压测趋势图中已经达到了4000的RPS上限,所以虚拟用户不会再继续上涨了。

解决方法

建议您在压力模式配置区域中,配置更高的目标虚拟用户,并再次进行压测。更多信息,请参见压力模式与量级配置