使用64位指令从命令行调用jMeter会丢失该类

时间:2016-06-16 17:06:27

标签: java jmeter jdk1.7

我们运行的是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

1 个答案:

答案 0 :(得分:3)

  1. 查看jmeter.sh,您似乎正在尝试在Linux或MacOSX上运行JMeter。我认为您需要删除set字词(或将其替换为export
  2. 如果您在PATH中有正确的java可执行文件,则不应提供-d64选项。类似的东西:

     JAVA_HOME=/path/to/64-bit/jdk && export JAVA_HOME
     PATH=$JAVA_HOME/bin:$PATH && export PATH
    
  3. 您可以修改jmeter脚本并修改以下行:

    HEAP="-Xms512m -Xmx512m"
    NEW="-XX:NewSize=128m -XX:MaxNewSize=128m"
    

    "命理"使用Concurrent Mark Sweep (CMS) Garbage Collector的Jmeter也可以大大提高JMeter端的性能。相关的一行是:

    -XX:+UseConcMarkSweepGC
    
  4. 有关充分利用JMeter安装的更多信息,请参阅9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure文章。