集群中的节点中每台在/var/log/messages中发现大量错误,内容如下:
root@real2 ~]# tail -f /var/log/messages
Oct 27 22:45:55 real2 kernel: printk: 1438 messages suppressed.
Oct 27 22:45:55 real2 kernel: TCP: time wait bucket table overflow
Oct 27 22:46:00 real2 kernel: printk: 1682 messages suppressed.
Oct 27 22:46:00 real2 kernel: TCP: time wait bucket table overflow
Oct 27 22:46:05 real2 kernel: printk: 1752 messages suppressed.
Oct 27 22:46:05 real2 kernel: TCP: time wait bucket table overflow
Oct 27 22:46:10 real2 kernel: printk: 1681 messages suppressed.
Oct 27 22:46:10 real2 kernel: TCP: time wait bucket table overflow
Oct 27 22:46:15 real2 kernel: printk: 1660 messages suppressed.
Oct 27 22:46:15 real2 kernel: TCP: time wait bucket table overflow
root@real2 ~]# tail -f /var/log/messages Oct 27 22:45:55 real2 kernel: printk: 1438 messages suppressed. Oct 27 22:45:55 real2 kernel: TCP: time wait bucket table overflow Oct 27 22:46:00 real2 kernel: printk: 1682 messages suppressed. Oct 27 22:46:00 real2 kernel: TCP: time wait bucket table overflow Oct 27 22:46:05 real2 kernel: printk: 1752 messages suppressed. Oct 27 22:46:05 real2 kernel: TCP: time wait bucket table overflow Oct 27 22:46:10 real2 kernel: printk: 1681 messages suppressed. Oct 27 22:46:10 real2 kernel: TCP: time wait bucket table overflow Oct 27 22:46:15 real2 kernel: printk: 1660 messages suppressed. Oct 27 22:46:15 real2 kernel: TCP: time wait bucket table overflow
原因:/proc/sys/net/ipv4/tcp_max_tw_buckets的值太小,才2000 解决方法:增大 tcp_max_tw_buckets的值,并不是这个值越小越好,我看了我系统中TIME_WAIT 大部是由php-fpm产生的,是属于正常的现象 修改 /etc/sysctl.conf net.ipv4.tcp_max_tw_buckets = 20000
sysctl -p 让其生效
附TIME_WAIT
[root@real2 ~]# [root@real2 ~]# netstat -an | grep 80 | awk ‘{print $6}’ | sort | uniq -c | sort -rn 5395 ESTABLISHED 2671 TIME_WAIT 978 FIN_WAIT2 501 FIN_WAIT1 165 SYN_RECV 71 LAST_ACK 2 CLOSING 1 LISTEN [root@real2 ~]# netstat -an | grep 9000 | awk ‘{print $6}’ | sort | uniq -c | sort -rn 8550 TIME_WAIT 1 LISTEN 1 FIN_WAIT1 1 ESTABLISHED
tcp_max_tw_buckets 参数类型:整型 |
原文