【问题标题】:Invoking jMeter from the command line with 64-bit directive loses the class使用 64 位指令从命令行调用 jMeter 会丢失类
【发布时间】:2016-06-16 17:06:26
【问题描述】:

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

【问题讨论】:

    标签: java jmeter jdk1.7


    【解决方案1】:
    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"
      

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

      -XX:+UseConcMarkSweepGC
      

    请参阅9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure 文章,了解有关充分利用 JMeter 安装的更多信息。

    【讨论】:

    • 其实它是在 Windows Server 8.1 上运行的。
    猜你喜欢
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 2012-09-04
    相关资源
    最近更新 更多