对于newb的Jmeter问题

时间:2014-10-09 01:51:17

标签: jmeter

因此,我需要将系统与数千个长轮询请求挂钩。

我创建了一个包含必要数量请求的线程组。有些事让我困惑。

(我在Mac上)

  1. 我运行jmeter.sh脚本来启动gui。除非我运行jmeter-server,否则我无法运行测试。没有它,我得到一个“无法连接到127.0.0.1 ...”的消息。文档没有提到需要启动此脚本。

  2. 在jmeter.sh脚本中,我将最大内存设置为export JVM_ARGS="-Xms4096m -Xmx4096m"。尽管如此,每当我开始运行测试时,我立即看到

  3. Uncaught Exception java.lang.OutOfMemoryError: unable to create new native thread. See log file for details.

    1. 我尝试无头地运行我的测试并没有变得更好;在停止之前它会得到大约2k个请求。我希望大约有40-50k个线程(即请求)。我不能重用线程(我知道)作为这个长轮询,所以请求阻塞直到某些东西导致它们释放。
    2. 有什么建议吗?提前完成。

1 个答案:

答案 0 :(得分:1)

这没有意义。您不需要运行jmeter-server,除非您需要在服务器模式下运行仪表,比如使用远程引擎。

根据您运行的Java版本,您可能会超出jmeter使用的JVM可用的内存空间。不确定为什么要分配4 GB。你应该没用512M或1024M。我发现无论如何,Jmeter都会随着时间的推移而泄漏。

你的无头测试应该会给你一个指示,你用Jmeter或者你的内存或线程空间不足,或者更有可能的是,你的服务器负担过重,可能会耗尽线程池。

我要做的第一件事就是将内存更改为更保守的内容,比如-Xms1024m -Xmx1024m。此外,40-50k请求不是40-50k线程。它们是彼此协作但不一定相同的概念。所以也许你在Jmeter中设置一些注定要通过创建太多并发线程而失败的东西。