gpt4 book ai didi

Azure 负载测试。了解虚拟用户如何影响性能

转载 作者:行者123 更新时间:2023-12-03 01:48:35 24 4
gpt4 key购买 nike

我正在尝试理解最近的 Azure 云负载测试的结果,该测试是针对我们的 API 之一运行的

当我测试 API 时,我已将负载测试虚拟用户配置为没有思考时间。因此,本质上,每次虚拟用户收到响应时,它都会立即发送另一个请求。

我们也没有使用任何类型的用户 session ,或缓存每个用户的任何数据。这是一个基本测试,将一些 JSON 发布到 API 上的端点,然后对收到的数据执行一些计算。

看来,通过改变虚拟用户的数量,我们可以提高服务的性能。我的意思是,它可以更快地响应,并且每秒仍可以处理更多请求。

两次负载测试的结果如下所示。

Load Test第一个测试告诉我,我们的 API 能够在 2 分钟内处理 60k 个请求。

我无法理解的是,为什么添加更多虚拟用户会增加平均响应时间并降低 RPS,进而导致 API 在 2 分钟内仅处理 55k 请求。

为什么 API 现在只能处理 460 RPS,而我们已经知道它可以处理 500 RPS?

最佳答案

这里有3个问题:1.为什么更多的虚拟用户会增加响应时间;2.为什么VU越多RPS就越低;3.为什么更多的VU会减少总请求数。

解释如下:

  1. 更多并发 VU 会创建更多并发 session ,这需要服务器上更多资源(例如 session 上下文、队列大小、线程并发性),从客户端角度来看,这会增加服务器处理时间和响应时间。

  2. 仅当负载生成器以与接收响应无关的恒定频率发出请求时,在这种情况下降低 RPS 才会不一致。实际上,发出请求后,每个 VU 都会等待,直到收到响应。由于服务器响应变慢,等待时间增加,导致RPS下降。这个问题有第二个答案。由于负载生成器性能容量有限,模拟更多 VU 需要客户端上更多资源,这可能会导致发出请求的延迟。当您将测试配置为零思考时间时,负载生成器可能会无意中注入(inject)延迟,从而导致 RPS 进一步降低。

  3. 总请求数与 VU 和 RPS 的数量成正比。显然,在您的情况下,RPS 降低产生了更大的影响,并且总请求数减少了。

通常,在负载测试中增加 VU 导致 RPS 降低的效果看起来像是一个悖论,但实际上并非如此。

关于Azure 负载测试。了解虚拟用户如何影响性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42587289/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com