Jmeter压测过程中出现大量
,HTTP Request,Non HTTP response code: java.net.NoRouteToHostException,Non HTTP response message: Cannot assign requested address (Address not available),ThreadGroup 1-283,text,false,"Test failed: code expected to equal /
****** received : [[[Non HTTP response code: java.net.NoRouteToHostException]]]
****** comparison: [[[200 ]]]
查看:netstat -anlt 发现大量waiting状态的链接
lt|grep TIM|wc -l,发现量不也是特别大,我的是在26000左右
说明施压机端口号耗尽,需要做如下优化
[@db_tc_149_69 /opt/jmeter/results]# vim /etc/sysctl.conf
# System default settings live in /usr/lib/sysctl.d/00-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.core.somaxconn = 4096
net.ipv4.tcp_max_syn_backlog = 65536
vm.swappiness = 1
#以下内容为新加
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.ip_conntrack_max = 20000
~
执行 /sbin/sysctl -p 使其生效
net.ipv4.tcp_syncookies = 1 表示开启SYN cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
net.ipv4.tcp_fin_timeout 修改系統默认的 TIMEOUT 时间

在使用JMeter进行压力测试时遇到大量`java.net.NoRouteToHostException`错误,表明可能存在端口号耗尽的问题。解决方法包括调整系统配置文件`sysctl.conf`,增大`somaxconn`、`tcp_max_syn_backlog`等参数,并启用`tcp_syncookies`、`tcp_tw_reuse`和`tcp_tw_recycle`选项。同时,减小`tcp_fin_timeout`和设置合理的`ip_local_port_range`。执行`sysctl -p`使改动生效,以提高系统处理连接请求的能力并优化端口使用。
1113

被折叠的 条评论
为什么被折叠?



