• 1
  • 2
  • 3
  • 4
  • 5
阿里云主机ECS 首 页  »  帮助中心  »  云服务器  »  阿里云主机ECS
ECS Linux NAT哈希表满导致服务器丢包的相关处理
发布日期:2016-1-4 17:1:8

  用户发现ECS Linux服务器出现间歇性丢包的情况,通过mtr、tracert等手段排查,外部网络未见到异常。

  同时,如下图,在系统日志中重复出现大量如下错误信息: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

  再观察观察