【发布时间】:2018-09-18 16:21:28
【问题描述】:
我目前在尝试使用 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>
【问题讨论】:
-
您能指出您在 JMeter 中使用了哪些组件吗? Javascript? IfController(显示它)任何其他组件?也显示线程组配置
-
@UBIKLOADPACK 我有一个 HTTP 标头管理器、用户定义的变量(仅用于主机名的 2 个变量)、DNS 缓存管理器、HTTP 授权管理器、Cookie 管理器、缓存管理器和一个 CSV 数据集配置用于处理用户名和密码。另外,我有“查看结果树”,我认为如果我在 CLI 模式下运行测试,它不会引起问题。上面我添加了线程组配置
标签: jmeter