我正在尝试使用主窗口框和四个从属Linux盒远程运行jmeter负载测试。 在这个配置中,我能够每个从属框只产生最多983个线程,之后我看到抛出的异常,说它由于内存不足异常而无法创建新线程。我的硬件配置相当高,有64个内核和64 GB RAM。所以硬件不应该成为瓶颈。 我用于起始堆大小的设置是3072m。在大多数论坛中,建议减少此数字,默认值为512k。但是,如果我保持在较低的位置,同时在从属框中启动jmeter-server,我会被提示我的初始堆大小太低。
我使用的其他配置是作为独立服务器的linux机箱之一,在这种情况下,我能够产生大约10k个线程而没有任何问题。
我已经将我的ulimit增加到32768。
有没有办法使用主从配置生成更多线程,或者我应该完全删除它并在所有四个框上并行运行脚本并编译数据。 如果是这样,你能给我一些第二种方法的指示吗?
答案 0 :(得分:0)
阅读本文:
答案 1 :(得分:0)
以下是我所做的一些重要发现。这些数字与我的机器的大小成正比。您可以使用以下方式检查:
cat /proc/meminfo
使用以下内容更改ulimit
设置:
ulimit -n 32768
如果您是root用户,那会有所不同。我不确定你是否必须是root或sudo用户。但是以root身份登录确实允许我产生更多线程。
更改了一些sysctl
设置。
/sbin/sysctl net.core.wmem_max=8388608
/sbin/sysctl net.core.rmem_max=8388608
/sbin/sysctl net.ipv4.tcp_rmem="4096 87380 8388608"
/sbin/sysctl net.ipv4.tcp_wmem="4096 87380 8388608"
/sbin/sysctl net.ipv4.tcp_tw_reuse=0
/sbin/sysctl net.ipv4.tcp_tw_recycle=0
/sbin/sysctl net.ipv4.tcp_keepalive_time=1800
/sbin/sysctl net.ipv4.tcp_max_syn_backlog=4096