You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JMeter分布式测试大并发异常:部分线程提前结束报RMI连接拒绝

问题原因分析与解决方案

这问题我之前帮不少做分布式JMeter压测的朋友排查过,结合你提供的日志和场景,核心原因是SSH隧道的并发承载瓶颈叠加RMI通信的资源限制,具体拆解如下:

一、直接触发异常的原因

日志里的java.rmi.ConnectException: Connection refused to host: 127.0.0.1,本质是当用户量涨到5200时,Slave通过SSH隧道向Master发送采样数据的RMI连接请求被拒绝了,主要有几个诱因:

  • SSH隧道的并发连接数不足:SSH服务默认对单会话的最大并发连接数(MaxSessions)和新连接的启动限制(MaxStartups)有默认值(通常是10-100左右),当5200个用户同时产生采样数据时,需要的并发RMI连接数远超SSH隧道能承载的上限,导致新的连接请求被直接拒绝。
  • RMI通信的资源瓶颈:JMeter默认用RMI做Master和Slave的样本传输,默认配置下RMI的连接超时、端口范围、传输效率都没针对高并发优化。当负载上来后,Master的RMI接收队列可能被占满,或者Slave端无法及时通过SSH隧道建立到127.0.0.1的RMI连接,最终触发连接拒绝。
  • 系统资源耗尽:5200用户的压测对Slave/Master的CPU、内存、网络带宽都是不小的考验,如果某台机器资源跑满(比如CPU 100%、内存不足),会导致RMI服务无法正常处理新的连接请求,间接引发连接拒绝。

二、针对性解决方案

1. 调整SSH隧道的并发限制

修改Slave端的SSH服务配置(/etc/ssh/sshd_config),增大相关参数:

# 允许的最大并发会话数,设为足够大的值
MaxSessions 10000
# 调整新连接的启动策略:前10000个连接无限制,之后超过30%的连接概率性拒绝,直到10000个后全部拒绝
MaxStartups 10000:30:10000

修改后重启SSH服务:

# Ubuntu/Debian系统
sudo systemctl restart sshd
# CentOS/RHEL系统
sudo service sshd restart

另外,建立SSH隧道时加上保活参数,防止连接超时断开:

ssh -L 1099:localhost:1099 -R 4000:localhost:4000 -o ServerAliveInterval=60 -o ServerAliveCountMax=3 user@slave-ip

2. 优化JMeter的RMI通信配置

在Master和所有Slave的jmeter.properties文件里调整以下参数:

# 禁用RMI SSL,减少加密开销(如果不需要安全传输的话)
rmi.ssl.disable=true
# 延长RMI连接超时时间,避免因网络延迟导致连接失败
rmi.connection.timeout=60000
# 改用更高效的二进制样本发送器,替代默认的StandardSampleSender,大幅降低RMI传输开销
sample_sender_classname=org.apache.jmeter.samplers.BinaryTCPSampleSender
# 固定RMI端口,避免端口耗尽,同时方便防火墙配置
server.rmi.localport=1099
client.rmi.localport=4000

修改后重启所有JMeter Server和Master。

3. 扩容与负载分摊

如果单台Slave扛不住5200用户的压力,建议:

  • 增加Slave节点数量,把用户数均匀分摊到多台Slave上,降低单台机器的负载和SSH隧道的并发压力。
  • 调整JMeter的堆内存配置,比如在jmeter.sh(Linux)或jmeter.bat(Windows)里修改HEAP参数:
HEAP="-Xms4g -Xmx8g"

根据机器内存情况调整,确保JMeter有足够的内存处理高并发请求。

4. 排查系统资源与端口

  • 用top或htop命令实时监控Master和Slave的CPU、内存使用率,确保没有资源耗尽的情况。
  • 用ss -tulpn(Linux)或netstat -anp命令检查端口使用情况,确认是否出现端口耗尽(比如大量TIME_WAIT状态的连接)。

内容的提问来源于stack exchange,提问作者Prital

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:19:00