使用10k +线程进行Jmeter测试

时间:2015-08-05 00:15:52

标签: multithreading jmeter performance-testing

我需要运行超过10000个线程的线程测试但是在大约2000时,我得到错误:

Uncaught Exception java.lang.OutOfMemoryError: unable to create new native thread.

我的机器有8GB内存。我试过了

set JVM_ARGS="-Xms1024m -Xmx6144m" jmeter.sh

虽然我没有更改jmeter.sh文件中的任何内容。我需要改变什么吗?我还能做些什么来进行如此大规模的测试?如何在没有jmeter gui的情况下运行jmx文件? (使用mac osx)

2 个答案:

答案 0 :(得分:0)

确保您使用的是64位jre环境,错误应该消失。

答案 1 :(得分:0)

  1. 确保实际应用了JVM堆调整参数。放置它们的最佳位置是找到以下行

    • for Windows: jmeter.bat 文件

      set HEAP=-Xms512m -Xmx512m
      
    • for Linux / Unix / MacOSX: jmeter 文件

      HEAP="-Xms512m -Xmx512m"
      

    并根据您的需要进行修改

  2. 确保您在command-line non-GUI mode
  3. 中运行测试
  4. 确保您已禁用所有Listeners
  5. 请参阅JMeter Performance and Tuning Tips以获取有关上述内容的解释以及更多建议。

    实际上JMeter可以启动的线程数量很大程度上取决于你的测试是做什么的,如果它是非常“轻松”的话 - 只使用一台8Gb RAM的机器就足够了,但是如果你的测试需要进行大量的后期处理如果耗尽一台机器资源并且无法达到所需的负载,则发送,接收和解析大量数据 - 当一个JMeter节点编排执行相同测试场景的多个从站时,请考虑Remote Testing - 它允许产生几乎无限的负载。