kernel: ip_conntrack: table full, dropping packet.
2010-11-18 18:01
375 查看
今日服务器流量监控发现2台下载服务器流量越来越低,到最后竟然直接连不上了。
通知机房排除机房原因之后,连上系统查看日志,发现message里面很多kernel: ip_conntrack: table full, dropping packet.报错。
google了一下,发现也有其他人遇到类似问题,原来是ip_conntrack(连接跟踪表)中的数量过过多导致的,默认是65528。
wc -l /proc/net/ip_conntrack可以统计当前有多少个,超过65528就会kernel报错,cat /proc/sys/net/ipv4/ip_conntrack_max查看当前设置。
解决办法:
增加ip_conntrack_max设置,可以在/etc/sysctl.conf文件中增加:
net.ipv4.ip_conntrack_max = 655280然后键入命令sysctl -p生效
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=86400 设置连接跟踪表中失效时间为1天,如果觉得一天还是长的话可以改为3600(一小时)或者600(10分钟)
如果想立即降下来跟踪表中的连接可以尝试使用以下办法:
下载hping:
http://www.hping.org/download.html
./configure
make
make install
安装后写一个script.
保存为clr_conns.sh
用:sh clr_conns.sh IP
就可以清除连接.
查看ip_conntrack前10位IP
cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr | head -n 10
通知机房排除机房原因之后,连上系统查看日志,发现message里面很多kernel: ip_conntrack: table full, dropping packet.报错。
google了一下,发现也有其他人遇到类似问题,原来是ip_conntrack(连接跟踪表)中的数量过过多导致的,默认是65528。
wc -l /proc/net/ip_conntrack可以统计当前有多少个,超过65528就会kernel报错,cat /proc/sys/net/ipv4/ip_conntrack_max查看当前设置。
解决办法:
增加ip_conntrack_max设置,可以在/etc/sysctl.conf文件中增加:
net.ipv4.ip_conntrack_max = 655280然后键入命令sysctl -p生效
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=86400 设置连接跟踪表中失效时间为1天,如果觉得一天还是长的话可以改为3600(一小时)或者600(10分钟)
如果想立即降下来跟踪表中的连接可以尝试使用以下办法:
下载hping:
http://www.hping.org/download.html
./configure
make
make install
安装后写一个script.
#!/bin/bash echo echo "############################" echo "# Edit by Youngh 2003.06.24 v1.1 " echo "# Usage : clr_conns IpAddress" echo "# This will clear all connections from this IP_Address" echo "# Example:/root/clr_conns 10.0.3.3 " echo "############################" echo if [ -z $1 ] ; then exit fi grep -E "^tcp .{10,25}ESTABLISHED src=$1 " /proc/net/ip_conntrack | while read line ; do S_IP=`echo $line | awk '{print substr($5,5)}'` S_SOCK=`echo $line | awk '{print substr($7,7)}'` D_IP=`echo $line | awk '{print substr($6,5)}'` D_SOCK=`echo $line | awk '{print substr($8,7)}'` echo "$S_IP:$S_SOCK $D_IP:$D_SOCK" hping2 $D_IP -R -s $S_SOCK -p $D_SOCK -a $S_IP -k -c 1 >/dev/null 2>/dev/null & done
保存为clr_conns.sh
用:sh clr_conns.sh IP
就可以清除连接.
查看ip_conntrack前10位IP
cat /proc/net/ip_conntrack | cut -d ' ' -f 10 | cut -d '=' -f 2 | sort | uniq -c | sort -nr | head -n 10
相关文章推荐
- 服务器出现 server kernel: ip_conntrack: table full, dropping packet. 问题
- kernel: ip_conntrack: table full, dropping packet
- 服务器出现 server kernel: ip_conntrack: table full, dropping packet. 问题
- 解决(kernel: ip_conntrack: table full, dropping packet)的方法
- kernel:ip_conntrack:table full,dropping packet导致丢包
- 解决(kernel: ip_conntrack: table full, dropping packet)的方法
- 服务器出现 server kernel: ip_conntrack: table full, dropping packet. 问题
- 服务器出现 server kernel: ip_conntrack: table full, dropping packet. 问题
- kernel: ip_conntrack: table full, dropping packet.
- Resolving "ip_conntrack: table full, dropping packet" errors
- 用iptables的raw表解决ip_conntrack: table full, dropping packet的问题
- ip_conntrack: table full, dropping packet 解决方法
- ip_conntrack: table full, dropping packet的问题
- CentOS ip_conntrack: table full, dropping packet 的解决方法
- kernel: nf_conntrack: table full, dropping packet解决办法
- ip_conntrack: table full, dropping packet.的解决(from idcnews)
- 系统报错:ip_conntrack: table full, dropping packet.
- ip_conntrack: table full, dropping packet
- 关于ip_conntrack: table full, dropping packet的问题
- 关于ip_conntrack: table full, dropping packet的问题