一台访问量较高的服务器出现严重的丢包和无法建立链接的情况,已经确认数据中心网络没有问题,怀疑服务器自身出现问题。

进入服务器发现网卡并没有error,内部运行的web服务均正常,但是仍然会出现断流和丢包现象,初步怀疑是在系统方面。

一、执行demsg

发现大量“VE0: nf_conntrack: table full, dropping packet.”的错误提示,确定是ip_conntrack跟踪连接满导致网络丢包问题。

二、统计表的情况

cat /proc/net/nf_conntrack | wc -l

默认max=65536。可以先重启iptables 恢复正常连接,然后修改参数

三、修改syctl参数

vi /etc/sysctl.conf

net.nf_conntrack_max = 655360   #加十倍,根据自身服务器内存进行修改
net.netfilter.nf_conntrack_tcp_timeout_established = 1200   #设置timeout时间

sysctl -p /etc/sysctl.conf

四、另外参考

#加大 ip_conntrack_max 值 net.ipv4.ip_conntrack_max = 393216
net.ipv4.netfilter.ip_conntrack_max = 393216
#降低 ip_conntrack timeout时间
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 300
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120

增加完以上内容后,通过sysctl -p 使配置生效 。不过该方法缺点:一是重启iptables后,ip_conntrack_max值又会变成65535默认值,需要重新sysctl -p


评论专区
  • 昵 称必填
  • 邮 箱必填
  • 网 址选填
◎已有 0 人评论
作者介绍
吕布

吕布

负责所有栏目的编辑工作。
80vps henghost
30天热门
budgetvm sugarhosts
点击关闭
  • 在线客服1

    在线客服2

    在线客服3

分享:

支付宝

微信