ip-CentOS

教程大全 2026-01-08 18:52:27 浏览

那么,为什么会出现 ip_conntrack: table full, dropping packet 呢?iptables 使用一张连接跟踪表,来描述连接状态,当这张表满了,就会在日志里面写入该信息。这可能有点难以理解,那么到底在什么情况下,我们需要在日志里面查找这条记录呢? 当你发现,PING 服务器的结果,出现丢包,或者出现延迟不稳定,忽高忽低,在排除线路因素之后,就应当考虑 ip_conntrack: table full, dropping packet 。 CentOS 6 /RHEL 5 下的解决方法:

复制代码

代码如下:

sysctl -w net.ipv4.netfilter.ip_conntrack_max=100000.sysctl -w net.ipv4.netfilter.ip_conntrack_max=100000

复制代码

代码如下:

net.ipv4.netfilter.ip_conntrack_max = 100000.net.ipv4.netfilter.ip_conntrack_max = 100000

复制代码

代码如下:

sysctl -p.sysctl -p

CentOS 6 /RHEL 6 下的解决方法:

复制代码

代码如下:

sysctl -w net.nf_conntrack_max=100000.sysctl -w net.nf_conntrack_max=100000

复制代码

代码如下:

net.nf_conntrack_max = 100000.net.nf_conntrack_max = 100000

dropping 复制代码

代码如下:

sysctl -p.sysctl -p

*** 如果 Xen DomU 出现零星丢包或者 PING 忽高忽低,同时关闭 iptables 后 ping 正常,则多半是这个问题。 或参考下面的方法试试 一。服务器出现了大量的丢包现象,通过查看message出现了下面的错误:

复制代码

代码如下:

显示当前的会话数:cat /proc/net/ip_conntrack | wc -l显示系统目前配置的最大 conntrack 数:cat /proc/sys/net/ipv4/ip_conntrack_max# 一旦前者的数字大于后者时,系统就报错,解决办法:echo “” > /proc/sys/net/ipv4/ip_conntrack_max# 然后写入/etc/sysctl.confnet.ipv4.ip_conntrack_max =

-存储这些conntrack的hash表的大小,叫做hashsize 当conntrack入口数大于conntrack_max时,在hash表中每一个conntrack list中的存储的入口将不可控.(conntrack_mark/hashsize 为每个list所能存储的入口的数量) hash表存在于固定的的不可swap的内存中. conntrack_mark决定占用多少这些不可swap的内存. 所以32位pc,512M内存可以存512*1024^2/128/1024=512*8=4096(连接池list) x表示使用的指针类型是(32位还是64的) 你可修改这两个值以适应高负载的netfilter的应用 系统默认为conntrack_max:hashsize是8:1,你可以设成1:1以提高性能. 如果(netfilter conntrack静态编译在内核中),2.4中可以在编译时设置,2.6可以在启动中(boot时)加入ip_conntrack.hashsize=$hashsize net.ipv4.netfilter.ip_conntrack_max = 524288 (根据自己的物理内存算出来的) 一个例子512m内存,使用384m来用于conntrack则 384*1024*1024/(352+8)(使用它是保守计算) =~1143901 (此为conntrack:hashszie为1:1,352为sizeof(ip_conntrack),8为sizeof(list_head). 由于hash最好设为2的乘方的数,所以为1048576(2^20).

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐