java - Jmeter req/s 速率下降,加载 org.mozilla.javascript.gen._cmd__

标签 java performance garbage-collection jmeter

我正在使用 Jmeter 3.0 进行负载测试。每秒响应代码图向我展示了这样的锯齿图(50 个线程):

enter image description here 尝试使用 VisualVM 监视 java,加载类图和 gc 与之前的相关: enter image description here enter image description here

所以看起来 rps 只有在 Full GC 之后才会增长,然后下降。

我用 key -verbose:class > classes.txt 重新启动了 Jmeter,看看正在加载什么样的类。这个文件大部分都充满了数千个像这样的实体:

[Loaded org.mozilla.javascript.gen._cmd__128239 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128259 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128262 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128261 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128263 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128265 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128266 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128269 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128271 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128270 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128257 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128260 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128273 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128267 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128268 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128280 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128275 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128277 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]
[Loaded org.mozilla.javascript.gen._cmd__128272 from file:/C:/apache-jmeter-3.0/lib/rhino-1.7.7.1.jar]

只有一件事有助于保持均匀负载,那就是减小堆大小或增加线程数(强制执行更频繁的 gc)。尝试了不同的 java 设置,最后一个是:

java -server -XX:+HeapDumpOnOutOfMemoryError -Xms2g -Xmx2g -XX:NewSize=128m -XX:MaxNewSize=512m -XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50 -XX:MaxTenuringThreshold=2 -XX:+CMSClassUnloadingEnabled -XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -verbose:class > classes.txt -jar ApacheJMeter.jar 

最佳答案

你的回答已经有了原因和解决方法,只是总结一下。

引用资料: 1. Apache JMeter Best Practices 2. 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure

关于java - Jmeter req/s 速率下降,加载 org.mozilla.javascript.gen._cmd__,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38356995/

相关文章:

mysql - 如何提高大型 InnoDB 表的 DELETE FROM 性能?

memory-management - 为什么要在网络应用程序中进行垃圾收集?

actionscript-3 - 土坯 AIR : prevent GC from running

java - HashMap 和垃圾回收 : do I need to call clear() before variable re-assignment?

java - Hadoop线程异常 “main”中的字数统计程序java.lang.ClassNotFoundException

java - Eclipse 声称我没有名为 R.id.list 的 ListView

java - 使用星号打印图形以在 Java 中显示数据。如果语句?

java - 使用批处理脚本编译项目并包含库

iphone - 使用 CoreData 与内存中的内存占用优势不明显/不明显 - 意见?

java - 为什么 lambda IntStream.anyMatch() 比原始实现慢 10?