3

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

1 回答 1

3
  1. 看起来jmeter.sh你正在尝试在 Linux 或 MacOSX 上运行 JMeter。我相信您需要删除setword (或将其替换为export
  2. java鉴于您在 PATH 提供选项中具有正确的可执行文件,-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"
    

    “告诉”Jmeter 使用Concurrent Mark Sweep (CMS) Garbage Collector也可以大大提高 JMeter 端的性能。相关线路是:

    -XX:+UseConcMarkSweepGC
    

有关从 JMeter 安装中获得最大收益的更多信息,请参阅 JMeter 负载测试“内存不足”故障的 9 个简单解决方案一文。

于 2016-06-17T04:09:27.487 回答