ipconntrack突然变得太大了

我的服务器只有2分钟的停机时间。 这是每秒约400请求。 我在慕尼黑报告中发现的唯一奇怪的事情是: http : //monitor.wingify.com/munin/visualwebsiteoptimizer.com/lb1.visualwebsiteoptimizer.com-fw_forwarded_local.html

我应该如何解释这个问题,以及如何确保这个问题不会再发生。

日志中没有什么exception。 我该如何debugging?

在你的系统日志中,你看到:

ip_conntrack: table full, dropping packet. 

如果是这样,你的conntrack表已满。 您还可以使用此命令检查当前跟踪的连接数量:

 username@localmachine:~$ cat /proc/slabinfo|grep conntrack nf_conntrack_expect 0 0 248 16 1 : tunables 0 0 0 : slabdata 0 0 0 nf_conntrack_ffffffff81d11da0 1499 1536 320 12 1 : tunables 0 0 0 : slabdata 128 128 0 

第一个/第二个数字是系统当前正在跟踪的值(活动/总计)。 您可以使用以下命令检查内核可以监视的当前最大连接数:

 sysctl net.netfilter.nf_conntrack_max 

对于CentOS / Redhat,它被称为ip_conntrack。 如果您没有看到nf_conntrack_max,请检查:

 sysctl net.ipv4.netfilter.ip_conntrack_max 

你可以使用sysctl -w命令来增加:

 sysctl -w net.netfilter.nf_conntrack_max=131072 

例如。 数量取决于您在机器中拥有多less内存,以及内核是否可以存储连接信息。 上面的设置使默认的Ubuntu设置65536翻倍。

当你find一个好的值时,把它添加到你的/etc/sysctl.conf文件中以在重新启动时应用它:

 # increase the number of conntrack max net.netfilter.nf_conntrack_max=131072 

只要你的机器和上游networking设备可以处理stream量,你应该是好的。 正如你所提到的,很高兴看到造成这种stream量增长的原因。 如果您正在使用DDOS,您应该尝试弄清楚一个反DDOS解决scheme,这个解决scheme可能涉及一个软件防火墙或一个设备的组合,这取决于您的应用程序和财务动机。