我的编程空间,编程开发者的网络收藏夹
学习永远不晚

CentOS ip_conntrack中表满和丢包的解决方法是怎样的

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

CentOS ip_conntrack中表满和丢包的解决方法是怎样的

本篇文章给大家分享的是有关CentOS ip_conntrack中表满和丢包的解决方法是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

那么,为什么会出现 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_thresh2
echo “2048″ > /proc/sys/net/ipv4/neigh/default/gc_thresh3
echo “4096″ > /proc/sys/net/ipv4/neigh/default/gc_thresh4
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

以上就是CentOS ip_conntrack中表满和丢包的解决方法是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

CentOS ip_conntrack中表满和丢包的解决方法是怎样的

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

CentOS ip_conntrack中表满和丢包的解决方法是怎样的

本篇文章给大家分享的是有关CentOS ip_conntrack中表满和丢包的解决方法是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。那么,为什么会出现 ip_connt
2023-06-10

CentOS yum段错误core dumped解决方法是怎样的

本篇文章给大家分享的是有关CentOS yum段错误core dumped解决方法是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。今天在yum install 或者yum
2023-06-10

CentOS系统中英文问题解决方案是怎样的

今天就跟大家聊聊有关CentOS系统中英文问题解决方案是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。在CentOS系统中,文字一直是困扰我们的一个大问题。由于CentOS系统
2023-06-16

CentOS和Redhat中锁定与解锁软件包版本的方法以及yum versionlock的使用是怎样的

本篇文章给大家分享的是有关CentOS和Redhat中锁定与解锁软件包版本的方法以及yum versionlock的使用是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。那
2023-06-10

SecureCRT中文显示乱码问题的解决方法是怎样的

本篇文章为大家展示了SecureCRT中文显示乱码问题的解决方法是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 修改远程linux机器的配置 vim /etc/sysconfig/i18
2023-06-13

Vista SP2更新和升级常见问题和解决方法是怎样的

Vista SP2更新和升级常见问题和解决方法是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。微软7月1日凌晨开始通过Windows Update推送Vista SP
2023-06-14

windows中输入法不显示故障的3种解决方法是怎样的

本篇文章为大家展示了windows中输入法不显示故障的3种解决方法是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。方法1:在任务栏单击鼠标右键,弹出快捷菜单,把鼠标移动到“工具栏”上,会弹出子
2023-06-14

windows电脑任务栏中没有语言栏的解决方法是怎样的

这期内容当中小编将会给大家带来有关windows电脑任务栏中没有语言栏的解决方法是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。问:我的电脑任务栏中没有语言栏,我在工具栏中的语言栏选项上已经选中显示
2023-06-14

排除法是怎样解决网站在搜索过程中表现不佳的现象

这篇文章将为大家详细讲解有关排除法是怎样解决网站在搜索过程中表现不佳的现象,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。搜索引擎排名机制异常的复杂和严密,直接导致很多网站内容发布出来在搜索引
2023-06-13

中间表是什么?和报表有什么关系?会带来怎样的问题?又如何解决?

在数据库中有一类用于保存中间计算结果的物理表,通常被称为“中间表”。中间表主要跟 OLAP(在线联机分析)业务有关,产生的原因主要有以下几方面。 中间表来源 1. 计算逻辑复杂 在 OLAP(报表或查询)业务中,有些计算逻辑很复杂,每次都从头写会导致报表开发
中间表是什么?和报表有什么关系?会带来怎样的问题?又如何解决?
2017-07-23

解决网站开发中首页不在第一页的问题的方法是怎样的

解决网站开发中首页不在第一页的问题的方法是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。什么情况才会影响关键词排名呢?总结起来有两个关键所在: 1、首页不在第一页; 2、
2023-06-12

windows系统中文件应用属性时出错的解决方法步骤是怎样的

本篇文章给大家分享的是有关windows系统中文件应用属性时出错的解决方法步骤是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。有很多用户跟笔者一样在上网的时候遇见过“文件
2023-06-14

在xp系统中插入U盘没有显示盘符问题的解决方法是怎样的

这篇文章给大家介绍在xp系统中插入U盘没有显示盘符问题的解决方法是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.首先鼠标右键点击 "我的电脑",然后选择"管理"进入计算机管理(如图)2.进入"计算机管理后",
2023-06-14

windows电脑里无线网络连接上但上不了网的原因和解决方法是怎样的

windows电脑里无线网络连接上但上不了网的原因和解决方法是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。最近有关于很多无线网络连接上但上不了网的问题,很多学员都来邮件
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录