Linux NAT 哈希表满导致服务器丢包
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
错误。
用户可以尝试参阅如下步骤,通过修改如下内核参数来调整 ip_conntrack
限制。
Centos 5.x 系统
1 2 3 4 5
| #哈希表项最大值 net.ipv4.netfilter.ip_conntrack_max = 655350 #超时时间,默认情况下 timeout 是5天(432000秒) net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 1200
|
Centos 6.x 及以上系统
1 2 3 4 5
| 哈希表项最大值 net.netfilter.nf_conntrack_max = 655350 超时时间,默认情况下 timeout 是5天(432000秒) net.netfilter.nf_conntrack_tcp_timeout_established = 1200
|
上一篇:time wait bucket table overflowt 报错处理方法
下一篇:内核网络参数