2015.9.13
message日志报错:TCP: time wait bucket table overflow
网上很多解决办法,我也是百度的,哈哈
先盗一张图,因为问题已经很久了,没截图
K哥盗图。
这个报错需要更改net.ipv4.tcp_max_tw_buckets这个内核参数。
这个参数是系统同时保持timewait套接字的最大数量。
如果超过这个数字,time-wait套接字将立刻被清除并打印警告信息。
这个限制仅仅是为了防止简单的 DoS***。
解决方法:
增大 tcp_max_tw_buckets的值,并不是这个值越小越好,我看了我系统中TIME_WAIT 大部是由php-fpm产生的,是属于正常的现象。
1、查看到底有多少等待的数量
netstat -an | grep 80| awk '{print $6}' | sort | uniq -c | sort -rn
TIME_WAIT 6644
我是K哥!
2、修改我们的内核参数
vi /etc/sysctl.conf
将net.ipv4.tcp_max_tw_buckets = 5000
改为:net.ipv4.tcp_max_tw_buckets = 10000
记得更新内核配置
sysctl -p3、再查看等待数量
netstat -an | grep 80| awk '{print $6}' | sort | uniq -c | sort -rn
等待数量会减小,日志也不会报错了。
提醒:千万不要盲目的无限制的增加net.ipv4.tcp_max_tw_buckets
因为这极可能就是DDOS***,盲目的增加会导致你服务器瘫痪的哦!
转载于:https://blog.51cto.com/kevinzhang91/1844825