Jmeter何时释放对象?

时间:2018-09-04 06:01:29

标签: jmeter garbage-collection jvm md5 heap-memory

我正在进行视频流的负载测试,我观察到当我们执行Jmeter下载任何视频文件时,它会下载到Heap内存中,并且很多时候它不释放堆内存,这会导致JVM内存不足问题

我还观察到,当我们选择“另存为MD5哈希选项”选项时,适当的GC周期开始了,而Jmeter通过JVM出现了内存不足错误。

您能帮我一下吗?

  1. Jmeter如何处理对象?
  2. 何时释放对象?和
  3. 选择“另存为MD5”选项后,在执行和释放该选项期间会有什么区别?

1 个答案:

答案 0 :(得分:1)

区别在于,如果您勾选Save as MD5,JMeter仅存储响应的MD5 hash,这是一个相对较短的字符串,而相反,JMeter则将整个响应存储在内存中,因此选项位于:

  1. 如果您需要检查内容的完整性,请结合使用MD5哈希值和MD5Hex Assertion
  2. 选择distributed testing,默认情况下,JMeter远程引擎不存储响应数据,因此将被丢弃(
  3. 增加分配给JMeter的JVM堆空间,以使响应适合
  4. 使用JSR223 Listener和类似的代码

    来手动丢弃响应数据
    prev.setResponseData('dummy','UTF-8')