Linux NAT哈希表满导致服务器丢包
时间:2016-01-03 01:34 来源:linux.it.net.cn 作者:IT
用户发现Linux服务器出现间歇性丢包的情况,通过tracert、mtr等手段排查,外部网络未见异常。
同时,如下图所示,在系统日志中重复出现大量如下错误信息:
kernel nf_conntrack: table full, dropping packet.
ip_conntrack是Linux系统内NAT的一个跟踪连接条目的模块。ip_conntrack模块会使用一个哈希表记录 tcp 通讯协议的 established connection记录,当这个哈希表满了的时候,便会导致nf_conntrack: table full, dropping packet错误。
首先:在Centos 5.x上是如下的设置
用户可以尝试通过修改如下内核参数来调整ip_conntrack限制。操作方式简述如下:
-
使用【管理终端】进入服务器;
-
在终端下输入如下指令编辑系统内核配置:
# vi /etc/sysctl.conf
-
设置或修改如下参数:
#哈希表项最大值
net.ipv4.netfilter.ip_conntrack_max = 655350
#超时时间,默认情况下 timeout 是5天(432000秒)
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 1200
-
在终端下输入如下指令使上述配置生效:
# sysctl -p
-
再观察看看。
然后:在Centos 6.x上是上是如下的设置
-
使用【管理终端】进入服务器;
-
在终端下输入如下指令编辑系统内核配置:
# vi /etc/sysctl.conf
-
设置或修改如下参数:
#哈希表项最大值
net.netfilter.nf_conntrack_max = 655350
#超时时间,默认情况下 timeout 是5天(432000秒)
net.netfilter.nf_conntrack_tcp_timeout_established = 1200
-
在终端下输入如下指令使上述配置生效: sysctl -p
-
再观察观察
(责任编辑:IT)
用户发现Linux服务器出现间歇性丢包的情况,通过tracert、mtr等手段排查,外部网络未见异常。 同时,如下图所示,在系统日志中重复出现大量如下错误信息: kernel nf_conntrack: table full, dropping packet.
ip_conntrack是Linux系统内NAT的一个跟踪连接条目的模块。ip_conntrack模块会使用一个哈希表记录 tcp 通讯协议的 established connection记录,当这个哈希表满了的时候,便会导致nf_conntrack: table full, dropping packet错误。
首先:在Centos 5.x上是如下的设置 用户可以尝试通过修改如下内核参数来调整ip_conntrack限制。操作方式简述如下:
然后:在Centos 6.x上是上是如下的设置
|