那么,为什么会出现 ip_conntrack: table full, dropping packet 呢?iptables 使用一张连接跟踪表,来描述连接状态,当这张表满了,就会在日志里面写入该信息。这可能有点难以理解,那么到底在什么情况下,我们需要在日志里面查找这条记录呢?
当你发现,PING 服务器的结果,出现丢包,或者出现延迟不稳定,忽高忽低,在排除线路因素之后,就应当考虑 ip_conntrack: table full, dropping packet 。
下面介绍 ip_conntrack: table full, dropping packet 的解决方法:
CentOS 6 /RHEL 5 下的解决方法:
1.运行
复制代码代码如下:sysctl -w net.ipv4.netfilter.ip_conntrack_max=100000.sysctl -w net.ipv4.netfilter.ip_conntrack_max=100000
2.在 /etc/sysctl 中加入:
复制代码代码如下:net.ipv4.netfilter.ip_conntrack_max = 100000.net.ipv4.netfilter.ip_conntrack_max = 100000
3.使其生效:
复制代码代码如下:sysctl -p.sysctl -p
CentOS 6 /RHEL 6 下的解决方法:
1.运行
复制代码代码如下:sysctl -w net.nf_conntrack_max=100000.sysctl -w net.nf_conntrack_max=100000
2.在 /etc/sysctl 中加入:
复制代码代码如下:net.nf_conntrack_max = 100000.net.nf_conntrack_max = 100000
3.使其生效:
复制代码代码如下:sysctl -p.sysctl -p
*** 如果 Xen DomU 出现零星丢包或者 PING 忽高忽低,同时关闭 iptables 后 ping 正常,则多半是这个问题。
或参考下面的方法试试
一。服务器出现了大量的丢包现象,通过查看message出现了下面的错误:
kernel:ip_conntrack:table full,dropping packet
解决的方法:
复制代码代码如下:
显示当前的会话数:
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.conf
net.ipv4.ip_conntrack_max =
二
有两点我们要注意.
-conntrack最大数量.叫做conntrack_max
-存储这些conntrack的hash表的大小,叫做hashsize
当conntrack入口数大于conntrack_max时,在hash表中每一个conntrack list中的存储的入口将不可控.(conntrack_mark/hashsize 为每个list所能存储的入口的数量)
hash表存在于固定的的不可swap的内存中. conntrack_mark决定占用多少这些不可swap的内存.
缺省的hashsize
——————————–
conntrack_max=hashsize*8
i386中 hashsize=conntrack_max/8=ramsize(in bytes)/131072=ramsize(in MegaBytes)*8.
所以32位pc,512M内存可以存512*1024^2/128/1024=512*8=4096(连接池list)
但是正确的算法是:
hashsize=conntrack_max/8=ramsize(in bytes)/131072/(x/32)
x表示使用的指针类型是(32位还是64的)
—————————-\
读取conntrack_max值
2.4内核
cat /proc/sys/net/ipv4/ip_conntrack_max
2.6内核
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max
读取hashsize值
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_buckets
——————————
你可修改这两个值以适应高负载的netfilter的应用
系统默认为conntrack_max:hashsize是8:1,你可以设成1:1以提高性能.
————————-
设置conntrack_max
echo $CONNTRACK_MAX > /proc/sys/net/ipv4/ip_conntrack_max
设置hashsize
如果(netfilter conntrack静态编译在内核中),2.4中可以在编译时设置,2.6可以在启动中(boot时)加入ip_conntrack.hashsize=$hashsize
如果为modules,则可以使用 modprobe ip_conntrack hashsize=$hashsize
#####################################
实践过方法:
Vi /etc/modprobe.conf
添加:
options ip_conntrack hashsize=524288
vi /etc/sysctl.conf
net.ipv4.netfilter.ip_conntrack_max = 524288 (根据自己的物理内存算出来的)
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180
##########################################
————————–
conntrack使用的内存计算
size_of_mem_used_by_conntrack (in bytes) =
CONNTRACK_MAX * sizeof(struct ip_conntrack) +
HASHSIZE * sizeof(struct list_head)
其中sizeof(struct ip_conntrack)大概在192-352字节之间.
sizeof(struct list_head) = 2 * size_of_a_pointer(i386中为4字节)
一个例子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).
———————
附相关设置及命令:
ip_conntrack timeout 原值432000秒(5天)
可改为10小时,echo “600″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
ip_conntrack buffer使用情况
grep conn /proc/slabinfo
例ip_conntrack 188069 229570 336 11 1 : tunables 54 27 8 : slabdata 20870
相关修改:
echo “1024 65000″ > /proc/sys/net/ipv4/ip_local_port_range
echo “100 1200 128 512 15 5000 500 1884 2″>/proc/sys/vm/bdflush
echo “1″ > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo “1″ > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo “1048576″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
echo “1″ > /proc/sys/net/ipv4/ip_forward
echo “268435456″ >/proc/sys/kernel/shmall
echo “536870912″ >/proc/sys/kernel/shmmax
echo “600″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
echo “1024″ > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo “2048″ > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo “4096″ > /proc/sys/net/ipv4/neigh/default/gc_thresh3
echo “52428800″ > /proc/sys/net/ipv4/route/max_size
echo “1″ > /proc/sys/net/ipv4/conf/all/proxy_arp
echo “1″ > /proc/sys/net/ipv4/tcp_window_scaling
当你发现,PING 服务器的结果,出现丢包,或者出现延迟不稳定,忽高忽低,在排除线路因素之后,就应当考虑 ip_conntrack: table full, dropping packet 。
下面介绍 ip_conntrack: table full, dropping packet 的解决方法:
CentOS 6 /RHEL 5 下的解决方法:
1.运行
复制代码代码如下:sysctl -w net.ipv4.netfilter.ip_conntrack_max=100000.sysctl -w net.ipv4.netfilter.ip_conntrack_max=100000
2.在 /etc/sysctl 中加入:
复制代码代码如下:net.ipv4.netfilter.ip_conntrack_max = 100000.net.ipv4.netfilter.ip_conntrack_max = 100000
3.使其生效:
复制代码代码如下:sysctl -p.sysctl -p
CentOS 6 /RHEL 6 下的解决方法:
1.运行
复制代码代码如下:sysctl -w net.nf_conntrack_max=100000.sysctl -w net.nf_conntrack_max=100000
2.在 /etc/sysctl 中加入:
复制代码代码如下:net.nf_conntrack_max = 100000.net.nf_conntrack_max = 100000
3.使其生效:
复制代码代码如下:sysctl -p.sysctl -p
*** 如果 Xen DomU 出现零星丢包或者 PING 忽高忽低,同时关闭 iptables 后 ping 正常,则多半是这个问题。
或参考下面的方法试试
一。服务器出现了大量的丢包现象,通过查看message出现了下面的错误:
kernel:ip_conntrack:table full,dropping packet
解决的方法:
复制代码代码如下:
显示当前的会话数:
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.conf
net.ipv4.ip_conntrack_max =
二
有两点我们要注意.
-conntrack最大数量.叫做conntrack_max
-存储这些conntrack的hash表的大小,叫做hashsize
当conntrack入口数大于conntrack_max时,在hash表中每一个conntrack list中的存储的入口将不可控.(conntrack_mark/hashsize 为每个list所能存储的入口的数量)
hash表存在于固定的的不可swap的内存中. conntrack_mark决定占用多少这些不可swap的内存.
缺省的hashsize
——————————–
conntrack_max=hashsize*8
i386中 hashsize=conntrack_max/8=ramsize(in bytes)/131072=ramsize(in MegaBytes)*8.
所以32位pc,512M内存可以存512*1024^2/128/1024=512*8=4096(连接池list)
但是正确的算法是:
hashsize=conntrack_max/8=ramsize(in bytes)/131072/(x/32)
x表示使用的指针类型是(32位还是64的)
—————————-\
读取conntrack_max值
2.4内核
cat /proc/sys/net/ipv4/ip_conntrack_max
2.6内核
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_max
读取hashsize值
cat /proc/sys/net/ipv4/netfilter/ip_conntrack_buckets
——————————
你可修改这两个值以适应高负载的netfilter的应用
系统默认为conntrack_max:hashsize是8:1,你可以设成1:1以提高性能.
————————-
设置conntrack_max
echo $CONNTRACK_MAX > /proc/sys/net/ipv4/ip_conntrack_max
设置hashsize
如果(netfilter conntrack静态编译在内核中),2.4中可以在编译时设置,2.6可以在启动中(boot时)加入ip_conntrack.hashsize=$hashsize
如果为modules,则可以使用 modprobe ip_conntrack hashsize=$hashsize
#####################################
实践过方法:
Vi /etc/modprobe.conf
添加:
options ip_conntrack hashsize=524288
vi /etc/sysctl.conf
net.ipv4.netfilter.ip_conntrack_max = 524288 (根据自己的物理内存算出来的)
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 180
##########################################
————————–
conntrack使用的内存计算
size_of_mem_used_by_conntrack (in bytes) =
CONNTRACK_MAX * sizeof(struct ip_conntrack) +
HASHSIZE * sizeof(struct list_head)
其中sizeof(struct ip_conntrack)大概在192-352字节之间.
sizeof(struct list_head) = 2 * size_of_a_pointer(i386中为4字节)
一个例子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).
———————
附相关设置及命令:
ip_conntrack timeout 原值432000秒(5天)
可改为10小时,echo “600″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
ip_conntrack buffer使用情况
grep conn /proc/slabinfo
例ip_conntrack 188069 229570 336 11 1 : tunables 54 27 8 : slabdata 20870
相关修改:
echo “1024 65000″ > /proc/sys/net/ipv4/ip_local_port_range
echo “100 1200 128 512 15 5000 500 1884 2″>/proc/sys/vm/bdflush
echo “1″ > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo “1″ > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo “1048576″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_max
echo “1″ > /proc/sys/net/ipv4/ip_forward
echo “268435456″ >/proc/sys/kernel/shmall
echo “536870912″ >/proc/sys/kernel/shmmax
echo “600″ > /proc/sys/net/ipv4/netfilter/ip_conntrack_tcp_timeout_established
echo “1024″ > /proc/sys/net/ipv4/neigh/default/gc_thresh1
echo “2048″ > /proc/sys/net/ipv4/neigh/default/gc_thresh2
echo “4096″ > /proc/sys/net/ipv4/neigh/default/gc_thresh3
echo “52428800″ > /proc/sys/net/ipv4/route/max_size
echo “1″ > /proc/sys/net/ipv4/conf/all/proxy_arp
echo “1″ > /proc/sys/net/ipv4/tcp_window_scaling
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“CentOS ip_conntrack: table full, dropping packet 的解决方法”评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
2024年11月24日
2024年11月24日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]