Azure负载测试。了解虚拟用户如何影响性能
我正在尝试理解最近Azure云负载测试的结果,该测试是针对我们的API之一运行的 在测试API时,我将负载测试虚拟用户配置为没有思考时间。因此,从本质上讲,每次虚拟用户收到响应时,它都会立即发送另一个请求 我们也不使用任何类型的用户会话,也不缓存每个用户的任何数据。这是一个基本测试,将一些JSON发布到API上的端点,然后API对接收到的数据执行一些计算 看来,通过改变虚拟用户的数量,我们可以提高服务的性能。我的意思是,它可以更快地响应,并且每秒处理更多的请求 两次负载测试的结果如下所示 第一个测试告诉我,我们的API能够在2分钟内处理60k个请求 我不明白的是,为什么添加更多的虚拟用户会增加平均响应时间并降低RPS,这反过来会导致API在2分钟内只处理55k个请求Azure负载测试。了解虚拟用户如何影响性能,azure,performance-testing,load-testing,Azure,Performance Testing,Load Testing,我正在尝试理解最近Azure云负载测试的结果,该测试是针对我们的API之一运行的 在测试API时,我将负载测试虚拟用户配置为没有思考时间。因此,从本质上讲,每次虚拟用户收到响应时,它都会立即发送另一个请求 我们也不使用任何类型的用户会话,也不缓存每个用户的任何数据。这是一个基本测试,将一些JSON发布到API上的端点,然后API对接收到的数据执行一些计算 看来,通过改变虚拟用户的数量,我们可以提高服务的性能。我的意思是,它可以更快地响应,并且每秒处理更多的请求 两次负载测试的结果如下所示 第一
为什么API现在只能处理460 RPM,而我们已经知道它可以处理500 RPM?没有“确切”的单一原因,但请记住,随着load Generator数量的增加,连接数量和服务器上的并行操作数量也在增加。您不能假设,随着时间的推移,通过增加用户负载,您将继续获得更好的吞吐量和响应时间。事实上,有时您会增加负载,并在性能图上找到难以捉摸的“曲线拐点”——延迟峰值(以及请求失败),而吞吐量则急剧下降。从负载测试的角度来看,这将是一件好事,因为您现在对现有软件+基础设施在事务速率等方面的预期有了相当好的了解
您需要进一步深入研究以确定确切原因,但这很容易与线程池耗尽、内存问题、cpu问题、磁盘问题、特定资源(如缓存或数据库)上的瓶颈、网络饱和等有关。这里有三个问题: 1.为什么更多的虚拟用户会增加响应时间; 2.为什么更多的VU会降低RPS; 3.为什么更多的VU会减少总请求 以下是解释:
一般来说,负载测试中VU的增加导致RPS降低的效果看起来像是一个悖论,而实际上并非如此。“您现在已经对现有软件+基础设施在事务速率等方面的预期有了相当好的了解”这就是问题所在,现在我不这么认为。我正在进行负载测试,因为我想确保API能够处理500 RPM。从技术上讲,第一次测试处理了500转/秒,没有问题,反应迅速。我不知道生活环境会更接近什么。200个虚拟用户或300个虚拟用户。我在服务本身中有一些性能计数器,因此我可以看到当有更多用户时,服务需要更长的时间来响应。所以我不认为负载生成器在我的测试中无意中造成了延迟。正如您所建议的,它可能与当前会话有关。我会继续挖。谢谢