Jmeter什么时候释放对象?
When does Jmeter releases object?
我正在对视频流进行负载测试,我观察到当我们执行 Jmeter 下载任何视频文件时,它会下载到堆内存中,并且很多时候它不会释放堆内存,这会导致 JVM 超出内存问题。
我还观察到,当我们 select 选项“另存为 MD5 哈希选项”时,正确的 GC 周期开始,Jmeter 会通过 JVM 内存不足错误。
你能帮我了解一下吗:
- Jmeter是如何处理对象的?
- 什么时候释放对象?和
- 当 selected 另存为 MD5 选项时,它在执行和释放选项期间有什么区别?
不同之处在于,如果您勾选 Save as MD5
JMeter 仅存储 MD5 hash 响应,这是一个相对较短的字符串,而在相反的情况下,JMeter 将整个响应存储在内存中,因此选项是在:
- 如果需要检查内容完整性,请结合使用 MD5 哈希和 MD5Hex Assertion
- 选择 distributed testing,默认情况下 JMeter 远程引擎不存储响应数据,因此它将被丢弃(
- 增加分配给 JMeter 的 JVM 堆 space,以便响应适合
使用JSR223 Listener和类似
的代码手动丢弃响应数据
prev.setResponseData('dummy','UTF-8')
我正在对视频流进行负载测试,我观察到当我们执行 Jmeter 下载任何视频文件时,它会下载到堆内存中,并且很多时候它不会释放堆内存,这会导致 JVM 超出内存问题。
我还观察到,当我们 select 选项“另存为 MD5 哈希选项”时,正确的 GC 周期开始,Jmeter 会通过 JVM 内存不足错误。
你能帮我了解一下吗:
- Jmeter是如何处理对象的?
- 什么时候释放对象?和
- 当 selected 另存为 MD5 选项时,它在执行和释放选项期间有什么区别?
不同之处在于,如果您勾选 Save as MD5
JMeter 仅存储 MD5 hash 响应,这是一个相对较短的字符串,而在相反的情况下,JMeter 将整个响应存储在内存中,因此选项是在:
- 如果需要检查内容完整性,请结合使用 MD5 哈希和 MD5Hex Assertion
- 选择 distributed testing,默认情况下 JMeter 远程引擎不存储响应数据,因此它将被丢弃(
- 增加分配给 JMeter 的 JVM 堆 space,以便响应适合
使用JSR223 Listener和类似
的代码手动丢弃响应数据prev.setResponseData('dummy','UTF-8')