服务器出现kernel: TCP: time wait bucket table overflow解决

http://blog.sina.com.cn/s/blog_69cdee7f0100yowt.html


#一台Nginx+php-fcgi的服务器做了负载均衡,在主控端发现一直在报错:

01#----------------------------引用文字-开始----------------------------
02Apr 19 14:48:38chengyongxu.com kernel: TCP: time wait buckettable overflow
03Apr 19 14:48:44chengyongxu.com kernel: printk: 137 messagessuppressed.
04Apr 19 14:48:44chengyongxu.com kernel: TCP: time wait buckettable overflow
05Apr 19 14:48:52chengyongxu.com kernel: printk: 251 messagessuppressed.
06Apr 19 14:48:52chengyongxu.com kernel: TCP: time wait buckettable overflow
07Apr 19 14:48:53chengyongxu.com kernel: printk: 51 messages suppressed.
08Apr 19 14:48:53chengyongxu.com kernel: TCP: time wait buckettable overflow
09Apr 19 14:48:59chengyongxu.com kernel: printk: 119 messagessuppressed.
10#----------------------------引用文字-结束----------------------------

#再看80端口连接状态

01netstat-an | grep 80 |awk '{print $6}' |sort | uniq-c | sort -rn
02#----------------------------引用文字-开始----------------------------
03   4202TIME_WAIT
04     30FIN_WAIT1
05      9ESTABLISHED
06      5SYN_RECV
07      4LISTEN
08      4FIN_WAIT2
09      4CLOSING
10      2CONNECTED
11      2
12#----------------------------引用文字-结束----------------------------

#根据报错提示,需要更改net.ipv4.tcp_max_tw_buckets这个内核参数。这个参数是系统同时保持timewait套接字的最大数量。如果超过这个数字,time-wait套接字将立刻被清除并打印警告信息。这个限制仅仅是为了防止简单的DoS攻击,你绝对不能过分依靠它或者人为地减小这个值,如果网络实际需要大于缺省值,更应该增加这个值(如果增加了内存之后)。

01vi/etc/sysconfig/sysctl.conf
02#----------------------------引用文字-开始----------------------------
03#找到:
04net.ipv4.tcp_max_tw_buckets = 6000
05#改为
06net.ipv4.tcp_max_tw_buckets = 10000
07#----------------------------引用文字-结束----------------------------
08#保存并打印设置
09sysctl -p
10  
11#再看80端口连接状态
12netstat-an | grep 80 |awk '{print $6}' |sort | uniq-c | sort -rn
13#----------------------------引用文字-开始----------------------------
14   5928TIME_WAIT
15     42FIN_WAIT1
16     14ESTABLISHED
17     10FIN_WAIT2
18      6CLOSING
19      4SYN_RECV
20      4LISTEN
21      2CONNECTED
22      2
23#----------------------------引用文字-结束----------------------------
24netstat-an | grep 80 |awk '{print $6}' |sort | uniq-c | sort -rn
25#----------------------------引用文字-开始----------------------------
26   5510TIME_WAIT
27     34FIN_WAIT1
28      9SYN_RECV
29      9ESTABLISHED
30      7FIN_WAIT2
31      6CLOSING
32      4LISTEN
33      2CONNECTED
34      2
35#----------------------------引用文字-结束----------------------------
36netstat-an | grep 80 |awk '{print $6}' |sort | uniq-c | sort -rn
37#----------------------------引用文字-开始----------------------------
38   5687TIME_WAIT
39     38FIN_WAIT1
40     16ESTABLISHED
41     10SYN_RECV
42      6FIN_WAIT2
43      6CLOSING
44      4LISTEN
45      2CONNECTED
46      2
47#----------------------------引用文字-结束----------------------------
48netstat-an | grep 80 |awk '{print $6}' |sort | uniq-c | sort -rn
49#----------------------------引用文字-开始----------------------------
50   5688TIME_WAIT
51     38FIN_WAIT1
52     19ESTABLISHED
53      9SYN_RECV
54      6FIN_WAIT2
55      6CLOSING
56      4LISTEN
57      2CONNECTED
58      2
59#----------------------------引用文字-结束----------------------------

#再看/var/log/messages和dmesg的信息,已经不再报错了,看来net.ipv4.tcp_max_tw_buckets=10000暂时是够用了



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值