【发布时间】:2020-06-18 14:15:35
【问题描述】:
我正在使用 jmeter 对 200 个用户进行大约 1 小时的负载测试。因此,观察结果是即使在持续时间完成后也很少有线程卡住。就像 200 人中有 60 人被卡住了。当我进行线程转储并观察这些线程处于可运行状态时。有什么解决这个问题的建议吗?而且我从 jmeter 日志文件中看不到任何有意义的内容。
谢谢, J
【问题讨论】:
标签: jmeter load-testing jmeter-5.0 jmeter-4.0
我正在使用 jmeter 对 200 个用户进行大约 1 小时的负载测试。因此,观察结果是即使在持续时间完成后也很少有线程卡住。就像 200 人中有 60 人被卡住了。当我进行线程转储并观察这些线程处于可运行状态时。有什么解决这个问题的建议吗?而且我从 jmeter 日志文件中看不到任何有意义的内容。
谢谢, J
【问题讨论】:
标签: jmeter load-testing jmeter-5.0 jmeter-4.0
在该时间结束时,您会发现响应时间意外增加。
这是因为线程的减速时间不足。您的一些线程处于活动状态并向服务器发出请求并且没有收到响应但线程被强制关闭。如果您的 JMeter 测试被强制停止,所有活动线程将立即关闭。所以这些线程产生的请求会得到更长的响应时间。
您可以将Ultimate Thread Group 用于线程的优雅shutdown time(减速时间),就像加速时间一样。
这是一个示例设置:
【讨论】:
这不是 JMeter 测试的正常行为,很可能表明 JMeter 引擎过载(未正确配置为高负载)或运行 JMeter 的机器过载(即缺少 RAM 并开始密集交换)
今后考虑将线程转储和 jmeter 日志文件内容添加到您的问题中,因为它不包含任何线索,因此我们只能提供“盲目”的答案
【讨论】:
您可能想要检查您的 HTTP 超时。
我通常将 Connect Timeout 设置为 5000 毫秒,并将 Response Time out 设置为 30000。 您的值可能因您的特定环境/应用程序而异。 这样,如果被测服务器出现问题,所有请求都会在超时内终止(出现错误)。
您还必须考虑到,如果您正在检索包含所有嵌入对象的 HTML 页面,并且 Web 服务器被卡住,您需要在操作终止之前等待多个超时到期。
【讨论】: