【发布时间】:2021-12-17 06:27:08
【问题描述】:
我是 k6 的新手,如果我问的问题很幼稚,我很抱歉。我试图了解该工具如何在后台管理网络调用。它是否以他能做到的最大速度执行它们?是否根据被测系统的响应时间对它们进行排队?
我需要得到它,因为我正在使用 k6 run 和 k6 cloud 运行大量测试,但我每秒发出的请求不能超过 ~2000 个(查看 k6 结果)。我想知道是否是 k6 实现了某种背压机制,如果它知道我的系统“慢”,或者是否有其他原因导致我无法克服该限制。
我读到here 每秒可以发出 300.000 个请求,并且已经为此配置了云环境。我也尝试手动配置我的机器,但没有任何改变。
例如以下测试是相同的,唯一的变化是 VU 的数量。我在k6 cloud 上运行所有测试。
共享参数:
60 api calls (I have a single http.batch with 60 api calls)
Iterations: 100
Executor: per-vu-iterations
这里我得到了 547 个请求/秒:
VUs: 10 (60.000 calls with an avg response time of 108ms)
这里我得到了 1.051,67 reqs/s:
VUs: 20 (120.000 calls with an avg response time of 112 ms)
我得到了 1.794,33 个请求/秒:
VUs: 40 (240.000 calls with an avg response time of 134 ms)
这里我得到了 2.060,33 reqs/s:
VUs: 80 (480.000 calls with an avg response time of 238 ms)
这里我得到了 2.223,33 reqs/s:
VUs: 160 (960.000 calls with an avg response time of 479 ms)
这里我得到了 2.102,83 peak reqs/s:
VUs: 200 (1.081.380 calls with an avg response time of 637 ms) // I reach the max duration here, that's why he stop
我所期待的是,如果我的系统无法处理这么多请求,我必须看到很多超时错误,但我没有看到任何错误。我看到的是所有 API 调用都被执行并且没有返回错误。谁能帮帮我?
【问题讨论】:
标签: load-testing k6