我正在加载测试与JMeter的MQTT连接。
测试在非GUI模式下运行。 所有听众在测试期间都被禁用。
一切都很好,直到我将线程数从2k增加到3k。现在,当我运行测试时会发生此错误:
Uncaught Exception java.lang.OutOfMemoryError: unable to create new native thread. See log file for details.
我尝试通过编辑可执行文件来增加HEAP大小" jmeter"
但它不起作用。然后我换了一个更大的值2048m,仍然没有工作。
我搜索了这个问题,发现它可能与线程堆栈大小有关。有人指出我也可以在脚本中设置线程堆栈大小。所以我尝试在可执行文件中添加线程堆栈大小。
我不确定这是不是正确的方法。它也没有用。
有些人还说可能会增加JAP的HEAP大小或Thread堆栈大小。
然后我遇到了MKYoung的这个教程:https://www.mkyong.com/java/how-to-set-java_home-environment-variable-on-mac-os-x/ 说明改变HEAP大小和java的线程堆栈大小的方法。
但是为了设置工作,我必须在命令的末尾声明一个java类文件。
java -Xss256k <class name here>
但Jmeter是unix可执行文件,并且似乎没有任何java类文件。
我真的没有办法了。请帮忙。
答案 0 :(得分:1)
执行ulimit -u命令(显示最大用户进程)并根据您尝试使用的线程数进行修改(以及其他进程可以运行的更多),检查输出How to change default number of max process per user in linux主题以获取详细信息。
除此之外,请确保您遵循9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure指南中的建议。