【问题标题】:When does Jmeter releases object?Jmeter什么时候释放对象?
【发布时间】:2018-09-04 06:01:28
【问题描述】:

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

我还观察到,当我们选择“Save as MD5 Hash option”选项时,会启动正确的 GC 循环,并且 Jmeter 会通过 JVM 内存不足错误。

你能帮我知道吗:

  1. Jmeter 如何处理对象?
  2. 什么时候释放对象?和
  3. 当Save As为MD5选项时,选择在执行和释放选项期间使其变化?

【问题讨论】:

  • 您好,真的是视频流吗,在这种情况下是哪种类型(hls、mpeg-dash、hss 或 hds)还是渐进式下载?

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


【解决方案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')
    

【讨论】:

  • 感谢您的回复,我无法理解一件事,当我们选择选项另存为 MD5 时,整个回复存储在哪里?意味着生成校验 Jmeter 不下载整个响应?
  • JMeter 下载整个响应但只存储 MD5 哈希
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多