我们运行的是32位JDK和jMeter 2.6,当模拟8000名用户在一小时内分散时,他们遇到堆内存问题。
我们升级到64位Java和jMeter 2.12。
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)
当我们从命令行运行请求4Gb堆(服务器有32Gb)时,我们收到初始堆大小太大的消息。
set JVM_ARGS="-Xms4G -Xmx4G -XX:NewSize=512m -XX:MaxNewSize=1G" jmeter.sh
当我们将选项-d64添加到JVM_ARGS时,我们不再收到有关堆大小的错误,但它不再找到类
set JVM_ARGS="-d64 -Xms4G -Xmx4G -XX:NewSize=512m -XX:MaxNewSize=1G" jmeter.sh
将它指向目录似乎没有效果
set JVM_ARGS="-d64 -Xms4G -Xmx4G -XX:NewSize=512m -XX:MaxNewSize=1G -cp mypath" jmeter.sh
答案 0 :(得分:3)
jmeter.sh
,您似乎正在尝试在Linux或MacOSX上运行JMeter。我认为您需要删除set
字词(或将其替换为export
)如果您在PATH中有正确的java
可执行文件,则不应提供-d64
选项。类似的东西:
JAVA_HOME=/path/to/64-bit/jdk && export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH && export PATH
您可以修改jmeter
脚本并修改以下行:
HEAP="-Xms512m -Xmx512m"
NEW="-XX:NewSize=128m -XX:MaxNewSize=128m"
"命理"使用Concurrent Mark Sweep (CMS) Garbage Collector的Jmeter也可以大大提高JMeter端的性能。相关的一行是:
-XX:+UseConcMarkSweepGC
有关充分利用JMeter安装的更多信息,请参阅9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure文章。