Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1090465
  • 博文数量: 321
  • 博客积分: 7872
  • 博客等级: 少将
  • 技术积分: 2120
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-16 09:06
文章分类

全部博文(321)

文章存档

2017年(1)

2016年(1)

2015年(12)

2014年(17)

2013年(78)

2012年(15)

2011年(17)

2010年(67)

2009年(102)

2008年(11)

分类: LINUX

2010-07-15 11:36:40

查看message出现了下面的错误:
kernel:ip_conntrack:table full,dropping packet

通过网上查找资料,找到了解决的方法:

显示当前的会话数:
cat /proc/net/ip_conntrack | wc -l
显示系统目前配置的最大 conntrack 数:
cat /proc/sys/net/ipv4/ip_conntrack_max
# 一旦前者的数字大于后者时,系统就报错,解决办法:
echo 81920 > /proc/sys/net/ipv4/ip_conntrack_max
# 然后写入 /etc/sysctl.conf

sys.net.ipv4.ip_conntrack_max =
81920

ip_conntrack: table full, dropping packet

ip_conntip_conntrack模块默认的链接超时时间是432000 单位/秒
net.ipv4.ip_conntrack_max 最大net.ipv4.ip_conntrack是根据内存大小划分的。

调整系统内核
vi /etc/sysctl.conf
net.ipv4.ip_conntrack_max = 81920                 
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 1500

  最近一个web系统经常报出如下日志信息:Apr 17 16:37:26 www kernel: printk: 135 messages suppressed.

  Apr 17 16:37:26 www kernel: ip_conntrack: table full, dropping packet.

  Apr 17 16:37:26 www kernel: ip_conntrack: table full, dropping packet.

  Apr 17 16:37:33 www kernel: printk: 139 messages suppressed.

  Apr 17 16:37:33 www kernel: ip_conntrack: table full, dropping packet.

  Apr 17 16:37:37 www kernel: printk: 60 messages suppressed.

  Apr 17 16:37:37 www kernel: ip_conntrack: table full, dropping packet.

  Apr 17 16:37:52 www kernel: printk: 19 messages suppressed.

  Apr 17 16:37:52 www kernel: ip_conntrack: table full, dropping packet.有丢包现象,应该是系统内核屏蔽了网卡功能,此时系统对外表现为连接时通时断,接着执行如下操作:[root@web ~]# cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max

  65536针对这个问题,可调整以下参数:

  1. echo 180 >/proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established 
  2. echo 6553600 >/proc/sys/net/ipv4/netfilter/ip_conntrack_max 
  3. echo 120 >/proc/sys/net/ipv4/neigh/default/gc_stale_time 
  4. echo 10240 >/proc/sys/net/ipv4/neigh/default/gc_thresh1 
  5. echo 40960 >/proc/sys/net/ipv4/neigh/default/gc_thresh2 
  6. echo 81920 >/proc/sys/net/ipv4/neigh/default/gc_thresh3 

vi /etc/sysctl.conf

  1. net.ipv4.ip_conntrack_max=6553600 
  2. net.ipv4.netfilter.ip_conntrack_max=6553600 
  3. net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=120 
  4. net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=60 
  5. net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120 
  6. net.ipv4.neigh.default.gc_thresh1=10240 
  7. net.ipv4.neigh.default.gc_thresh2=40960 
  8. net.ipv4.neigh.default.gc_thresh3=81920 
  9. net.core.rmem_default = 2097152 
  10. net.core.rmem_max=16777216 
  11. net.core.wmem_max=16777216 
  12. net.core.wmem_default = 2097152 

再sysctl -p相关参数说明:ARP支持一个sysctl接口,可以用以配置全局参数或逐个网络接口地进行配制。该sysctl可以通过

/proc/sys/net/ipv4/neigh/*/*

文件或者使用

sysctl

(2)接口来访问。系统中每个接口都在/proc/sys/net/ipv4/neigh/.中有自己的目录。`default'目录中的设置用于所有新建的设备。sysctl相关的时间是以秒为单位,除非特别声明过.

anycast_delay

  对IPv6相邻请求信息的回复的最大延迟时间;目前还不支持anycast。缺省值为1秒。

app_solicit

  这是在使用多路广播探测(multicast probe)前,经过网络连接送到用户间隙ARP端口监控程序的探测(probe)最大数目(见mcast_solicit)。缺省值为0。

base_reachable_time

  一旦发现相邻记录,至少在一段介于base_reachable_time/2和3*base_reachable_time/2之间的随机时间内,该记录是有效的。如果收到上层协议的肯定反馈,那么记录的有效期将延长。缺省值是30秒。

delay_first_probe_time

  发现某个相邻层记录无效(stale)后,发出第一个探测要等待的时间。缺省值是5秒。

gc_interval

  收集相邻层记录的无用记录的垃圾收集程序的运行周期,缺省为30秒。

gc_stale_time

  决定检查一次相邻层记录的有效性的周期。当相邻层记录失效时,将在给它发送数据前,再解析一次。缺省值是60秒。

gc_thresh1

  存在于ARP高速缓存中的最少层数,如果少于这个数,垃圾收集器将不会运行。缺省值是128。

gc_thresh2

  保存在ARP高速缓存中的最多的记录软限制。垃圾收集器在开始收集前,允许记录数超过这个数字5秒。缺省值是512。

gc_thresh3

  保存在ARP高速缓存中的最多记录的硬限制,一旦高速缓存中的数目高于此,垃圾收集器将马上运行。缺省值是1024。

locktime

  ARP记录保存在高速缓存内的最短时间(jiffy数),以防止存在多个可能的映射(potential mapping)时,ARP高速缓存系统的颠簸(经常是由于网络的错误配置而引起)。缺省值是1秒。

mcast_solicit

  在把记录标记为不可抵达的之前,用多路广播/广播(multicast/broadcast)方式解析地址的最大次数。

  缺省值是3。

proxy_delay

  当接收到有一个请求已知的代理ARP地址的ARP请求时,在回应前可以延迟的jiffy(时间单位,见BUG)数目。这样,以防止网络风暴。缺省值是0.8秒。

proxy_qlen

  能放入代理ARP地址队列(proxy-ARP addresses)的数据包最大数目。缺省值是64。

retrans_time

  重发一个请求前的等待jiffy(时间单位,见BUG)的数目。缺省值是1秒。

ucast_solicit

  询问ARP端口监控程序前,试图发送单探测(unicast probe)的次数。(见app_solicit).缺省值是3秒。

unres_qlen

  每个没有被其它网络层解析的地址,在队列中可存放包的最大数目。缺省值是3.

阅读(1203) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~