如何分析JMeter生成的heap dump文件
How to analyze the heap dump file generated by JMeter
虽然我 运行 我从 GUI 和非 GUI 进行测试,观察到内存不足错误并且 JMeter 生成了一个 HPROF 文件作为转储。如何分析这个文件?
堆转储基本上是 Java™ 进程的内存快照。
参考:https://dzone.com/articles/java-heap-dump-analyzer-1
您可以使用 Eclipse 内存分析器 (MAT) 进行堆分析
您希望在此文件中看到什么?当发生 OutOfMemoryError 异常时,它会告诉您到底出了什么问题,最常见的原因是:
Java 堆 space - 在这种情况下只需增加分配给 JMeter 的 JVM 堆,相关行为 jmeter.bat 文件是 this one
set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
修改此 Xmx
,它根据您的测试场景需要设置最大堆边界
GC Overhead limit exceeded - 表示JVM在做garbage collection > 90%的时间,表示新的太多堆中的对象(或其大小太小)
请求的数组大小超过 VM 限制 - 当存在不适合堆的对象时
Metaspace - the same line in jmeter.bat file,即如果您积极使用 JSR223 测试元素,每次出现都会创建一个 class 并且加载的 classes 的数量不适合 metaspace
请求大小字节的原因。超出交换 space? - 不言自明
-等等
所以你需要阅读消息(.hprof文件是一个普通的文本文件,你可以用你喜欢的文本编辑器打开它会包含更多信息),了解原因并修改你的JMeter配置以消除这个原因。
更多信息:9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure
虽然我 运行 我从 GUI 和非 GUI 进行测试,观察到内存不足错误并且 JMeter 生成了一个 HPROF 文件作为转储。如何分析这个文件?
堆转储基本上是 Java™ 进程的内存快照。
参考:https://dzone.com/articles/java-heap-dump-analyzer-1
您可以使用 Eclipse 内存分析器 (MAT) 进行堆分析
您希望在此文件中看到什么?当发生 OutOfMemoryError 异常时,它会告诉您到底出了什么问题,最常见的原因是:
Java 堆 space - 在这种情况下只需增加分配给 JMeter 的 JVM 堆,相关行为 jmeter.bat 文件是 this one
set HEAP=-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m
修改此
Xmx
,它根据您的测试场景需要设置最大堆边界GC Overhead limit exceeded - 表示JVM在做garbage collection > 90%的时间,表示新的太多堆中的对象(或其大小太小)
请求的数组大小超过 VM 限制 - 当存在不适合堆的对象时
Metaspace - the same line in jmeter.bat file,即如果您积极使用 JSR223 测试元素,每次出现都会创建一个 class 并且加载的 classes 的数量不适合 metaspace
请求大小字节的原因。超出交换 space? - 不言自明 -等等
所以你需要阅读消息(.hprof文件是一个普通的文本文件,你可以用你喜欢的文本编辑器打开它会包含更多信息),了解原因并修改你的JMeter配置以消除这个原因。
更多信息:9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure