JMeter,linux环境下,执行jmeter报错:java.net.BindException: Address already in use: connect-已解决
JMeter,linux环境下,执行jmeter报错:java.net.BindException: Address already in use: connect-已解决修改配置文件:net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_keepalive_time = 1200net.ipv4.ip_local_port_range = 1024 65000net.ipv
·
一、问题描述:
通过jmeter进行性能测试,报错:address already in use:connect
二、原因分析:
1、系统的端口被耗尽了(Windows默认端口范围:1024-5000);
2、操作系统要 2~4分钟才会重新释放这些端口;
3、可以增加系统的可用端口来解决;
4、Windows端口最大数为65535,Linux是65000
1、(Windows/Linux)系统为了保护本机,限制了其他机器到本机的连接数
2、TCP/IP 可释放已关闭连接并重用其资源前,必须经过一定时间3、关闭和释放之间的时间间隔通称 TIME_WAIT 状态或两倍最大段生命周期(2MSL)状态。此期间,重新打开到客户机和服务器的连接的成本少于建立新连接。减少此条目的值允许 TCP/IP 更快地释放已关闭的连接,为新连接提供更多资源。如果运行的应用程序需要快速释放和创建新连接,而且由于 TIME_WAIT 中存在很多连接,导致低吞吐量,则调整此参数。
三、解决方案:
1、修改系统的配置文件
# 打开编辑内核参数文件
vim /etc/sysctl.conf
2、添加以下内容:
# 开启tcp_tw重用,允许将TIME-WAIT sockets重新用于新的TCP连接(默认为0,表示关闭);
net.ipv4.tcp_tw_reuse = 1
# 开启tcp_tw快速回收,TCP连接中TIME-WAIT sockets的快速回收(默认为0,表示关闭);
net.ipv4.tcp_tw_recycle = 1
# 表示当keepalive起作用的时候,TCP发送keepalive消息的频度由缺省的2小时,修改为20分钟
net.ipv4.tcp_keepalive_time = 1200
# 表示用于向外连接的端口范围。缺省情况下很小:32768到61000,修改为1024到65000
net.ipv4.ip_local_port_range = 1024 65000
# 表示SYN队列的长度,默认为1024,加大队列长度为8192,
# 可以容纳更多等待连接的网络连接数。
net.ipv4.tcp_max_syn_backlog = 8192
# 表示系统同时保持TIME_WAIT的最大数量,
# 如果超过这个数字,TIME_WAIT将立刻被清除并打印警告信息。
net.ipv4.tcp_max_tw_buckets = 5000
3、执行如下命令,使设置生效:
/sbin/sysctl -p
更多推荐
已为社区贡献1条内容
所有评论(0)