高吞吐量 Jmeter 和 AWS



我目前在尝试使用 AWS 上的 Jmeter 达到良好的吞吐量数字时遇到问题。我目前对 4 个t3.large实例(一个主实例,3 个从实例(进行了分布式负载测试,到目前为止我启动的测试中,我每秒无法获得超过 60 个 HTTP 请求。我只用 2 个从站和一个包含 250 个线程组(所以 250 * 2(的测试计划达到了这个数字。然后,我在测试计划中使用了 500 个线程组进行测试,无法获得更高的吞吐量。因此,我添加了一个额外的从站并将线程组的数量降低到 334 (334 * 3(,并且无法获得比第一次测试更高的吞吐量数字。在整个测试过程中,循环计数和上升时间保持不变。

我无法共享我正在使用的测试计划,但它基本上是登录页面+登录+ 使用 Blazemeter Chrome 插件登录后的导航的记录。

运行测试时,我一直在使用JVM_ARGS -Xms1024m -XX:NewSize=512m -XX:MaxNewSize=4096,以避免内存错误。

我正在寻找类似于每秒 300 个 HTTP 请求或更多的东西。我在这里缺少什么吗?我的基础设施还不够吗?我应该在 Jmeter 中调整一些东西吗?

线程组:

<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Thread Group" enabled="true">
<stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
<elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" enabled="true">
<boolProp name="LoopController.continue_forever">true</boolProp>
<stringProp name="LoopController.loops">10</stringProp>
</elementProp>
<stringProp name="ThreadGroup.num_threads">334</stringProp>
<stringProp name="ThreadGroup.ramp_time">1</stringProp>
<longProp name="ThreadGroup.start_time">1363247040000</longProp>
<longProp name="ThreadGroup.end_time">1363247040000</longProp>
<boolProp name="ThreadGroup.scheduler">true</boolProp>
<stringProp name="ThreadGroup.duration">0</stringProp>
<stringProp name="ThreadGroup.delay">0</stringProp>
</ThreadGroup>

最后,我似乎需要更强大的基础设施。我遵循了以下文档中的准则:

https://flood.io/blog/how-to-run-one-million-users/

更改为大型 AWS 实例后,我能够获得所需的吞吐量。此外,我很惊讶地看到他们在上面的链接中引用的数字与我在运行测试时看到的数字非常接近。

最新更新