因此,我需要将系统与数千个长轮询请求挂钩。
我创建了一个包含必要数量请求的线程组。有些事让我困惑。
(我在Mac上)
我运行jmeter.sh脚本来启动gui。除非我运行jmeter-server,否则我无法运行测试。没有它,我得到一个“无法连接到127.0.0.1 ...”的消息。文档没有提到需要启动此脚本。
在jmeter.sh脚本中,我将最大内存设置为export JVM_ARGS="-Xms4096m -Xmx4096m"
。尽管如此,每当我开始运行测试时,我立即看到
Uncaught Exception java.lang.OutOfMemoryError: unable to create new native thread. See log file for details.
有什么建议吗?提前完成。
答案 0 :(得分:1)
这没有意义。您不需要运行jmeter-server,除非您需要在服务器模式下运行仪表,比如使用远程引擎。
根据您运行的Java版本,您可能会超出jmeter使用的JVM可用的内存空间。不确定为什么要分配4 GB。你应该没用512M或1024M。我发现无论如何,Jmeter都会随着时间的推移而泄漏。
你的无头测试应该会给你一个指示,你用Jmeter或者你的内存或线程空间不足,或者更有可能的是,你的服务器负担过重,可能会耗尽线程池。
我要做的第一件事就是将内存更改为更保守的内容,比如-Xms1024m -Xmx1024m。此外,40-50k请求不是40-50k线程。它们是彼此协作但不一定相同的概念。所以也许你在Jmeter中设置一些注定要通过创建太多并发线程而失败的东西。