tcp_tw_reuse 与 net.ipv4.tcp_tw_recycle

最近发现几个监控用的脚本在连接监控数据库的时候偶尔会连不上,报错:
 Couldn‘t connect to host:3306/tcp: IO::Socket::INET: connect: Cannot assign requested address
查看了一下发现系统中存在大量处于TIME_WAIT状态的tcp端口
$netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}‘
TIME_WAIT 50013
ESTABLISHED 27
SYN_RECV 1
由于要监控的主机太多,监控的agent可能在短时间内创建大量连接到监控数据库(MySQL)并释放造成的。在网上查阅了一些tcp参数的相关资料,最后通过修改了几个系统内核的tcp参数缓解了该问题:
#vi /etc/sysctl.conf

net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1

#sysctl -p
其中:
net.ipv4.tcp_tw_reuse = 1 表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle = 1 表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭。
修改完成并生效后,系统中处于TIME_WAIT状态的tcp端口数量迅速下降到100左右:
$netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}‘
TIME_WAIT 82
ESTABLISHED 36
简单记录于此,备忘。

时间: 2024-08-25 12:42:59

tcp_tw_reuse 与 net.ipv4.tcp_tw_recycle的相关文章

net.ipv4.tcp_tw_recycle

原创 2016-03-07 CFC4N 运维帮 本文为翻译英文BLOG<Coping with the TCP TIME-WAIT state on busy Linux servers>,(http://vincent.bernat.im/en/blog/2014-tcp-time-wait-state-linux.html)但并非完整的翻译,译者CFC4N对原文理解后,进行了调整,增加了相关论点论据,跟原文稍有不同.翻译的目的,是为了加深自己知识点的记忆,以及分享给其他朋友,或许对他们也有

网络调优

关于网络调优,尤其是TCP Tuning(你可以以这两个关键词在网上找到很多文章),这里面有很多很多东西可以说.看看Linux下TCP/IP的那么多参数就知道了(顺便说一下,你也许不喜欢Linux,但是你不能否认Linux给我们了很多可以进行内核调优的权力).强烈建议大家看看<TCP/IP详解卷1:协议>这本书.我在这里只讲一些概念上的东西. A)TCP调优 我们知道TCP链接是有很多开销的,一个是会占用文件描述符,另一个是会开缓存,一般来说一个系统可以支持的TCP链接数是有限的,我们需要清楚

技巧-Linux内核参数调整办法

技巧 -Linux内核参数调整办法 ulimit设置 ulimit -n 要调整为100000甚至更大. 命令行下执行 ulimit -n 100000即可修改.如果不能修改,需要设置 /etc/security/limits.conf,加入 * soft nofile 262140 * hard nofile 262140 root soft nofile 262140 root hard nofile 262140 * soft core unlimited * hard core unli

TCP连接的状态详解以及故障排查

转载自CSDN博客:http://blog.csdn.net/hguisu/article/details/38700899 TCP状态 TCP状态迁移路线图 TCP连接建立三次握手 TCP连接的终止四次握手释放 同时打开 同时关闭 TCP通信中服务器处理客户端意外断开 Linux错误信息errno列表 我们通过了解TCP各个状态,可以排除和定位网络或系统故障时大有帮助.(总结网络上的内容) 1.TCP状态 了解TCP之前,先了解几个命令:   linux查看tcp的状态命令: 1).netst

【Python3之socket编程】

一.socket的定义 Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议.所以,我们无需深入理解tcp/udp协议,socket已经为我们封装好了,我们只需要遵循socket的规定去编程,写出的程序自然就是遵循tcp/udp标准的. 补充:也有人将socket说成ip+port,ip是用来

性能调优攻略

关于性能优化这是一个比较大的话题,在<由12306.cn谈谈网站性能技术>中我从业务和设计上说过一些可用的技术以及那些技术的优缺点,今天,想从一些技术细节上谈谈性能优化,主要是一些代码级别的技术和方法.本文的东西是我的一些经验和知识,并不一定全对,希望大家指正和补充. 在开始这篇文章之前,大家可以移步去看一下酷壳以前发表的<代码优化概要>,这篇文章基本上告诉你--要进行优化,先得找到性能瓶颈! 但是在讲如何定位系统性能瓶劲之前,请让我讲一下系统性能的定义和测试,因为没有这两件事,后

nginx+php产生大量TIME_WAIT连接解决办法

问题:当启动nginx和php-fpm时,使用netstat -tunap查看到大量TIME_WAIT连接 由于不知道原因,害怕是受到攻击,马上killall nginx 和php-fpm 会不会是80端口被攻击造成的?尝试修改nginx的80端口为8081,但结果同样是产生大量TIME_WAIT连接 无法知道问题,百度寻找办法 参考链接:http://www.heminjie.com/wordpress/3322.html 还没有解决 到晚上回到家自己重新测试才有所改善,并发现了某些问题 ne

linux生产环境精华优化实战配置(亲测)

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 编写人:陈飞 邮箱:[email protected] +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ CentOS系统安装之后并不能立即投入生产环境使用,往往需要先经过我们运维人员的优化才行.在此讲解几

linux系统优化

 Linux系统的优化 优化内容有: 修改ip地址.网关.主机名.DNS等 关闭selinux,清空iptables 添加普通用户并进行sudo授权管理 更新yum源及必要软件安装 定时自动更新服务器时间 精简开机自启动服务 变更默认的ssh服务端口,禁止root用户远程连接 锁定关键文件系统 调整文件描述符大小 调整字符集,使其支持中文 去除系统及内核版本登录前的屏幕显示 内核参数优化 1.1修改IP地址,网管,主机名,DNS等 [[email protected] ~]# vi/etc/sy