nf_conntrack: table full, dropping packet
参考:linux 路由跟踪表满错误 nf_conntrack: table full, dropping packet 原理解决方法
说明
ping,dmesg 或者 /var/log/messages日志中这个报错,说明服务器网络方面遇到了瓶颈。
此时查看 cat /proc/sys/net/netfilter/nf_conntrack_max 和 cat /proc/sys/net/netfilter/nf_conntrack_count的值相等或者非常接近。
但是cpu、mem、DiskIO各方面都还有余力。(一开始我怀疑是宿主机的问题,实际并不是。)
技术深入
连接跟踪的能力由nf_conntrack模块提供,该模块一般不会被开机加载,通过
lsmod命令查看,该模块被iptable_nat模块调用,用来实现网络地址转发(NAT)、包过滤和负载均衡(支持随机和轮询)等功能。nf_conntrack 跟踪所有网络连接,记录存储在 1 个哈希表里。
通过cat /proc/net/nf_conntrack | head -1可以查看记录的详情。
ipv4 2 tcp 6 429397 ESTABLISHED src=192.168.122.1 dst=192.168.122.195 sport=35866 dport=22 src=192.168.122.195 dst=192.168.122.1 sport=22 dport=35866 [ASSURED] mark=0 secctx=system_u:object_r:unlabeled_t:s0 zone=0 use=2
- nf_conntrack跟踪所有网络连接,所以 ping 本机也会留下一条记录:
ipv4 2 icmp 1 25 src=127.0.0.1 dst=127.0.0.1 type=8 code=0 id=20087 src=127.0.0.1 dst=127.0.0.1 type=0 code=0 id=20087 mark=0 secctx=system_u:object_r:unlabeled_t:s0 zone=0 use=2
问题处理
- 关闭使用连接跟踪的程序,比如docker、libvirt、防火墙(类似于禁用模块)
- 调整内核参数
- 设置不跟踪的连接
在云上环境一般会配置安全组策略,虚机无需另外配置防火墙,所以关闭即可,不能关闭的可以调整 nf_conntrack 相关内核参数。
附录
linux /etc 目录下面 modprobe.d/ modules-load.d/ motd 的作用
modprobe.d/目录:该目录包含了一些用于配置内核模块加载的文件。在这个目录中,可以创建一些以.conf为后缀的文件,用于指定内核模块的加载选项。这些文件中的配置可以影响到系统启动时内核模块的加载行为。
modules-load.d/目录:该目录包含了一些用于配置系统启动时自动加载内核模块的文件。在这个目录中,可以创建一些以.conf为后缀的文件,用于指定需要在系统启动时自动加载的内核模块。这些文件中的配置会在系统启动时被读取,并相应地加载指定的内核模块。
motd文件:motd是"Message of the Day"的缩写,意为每日消息。在Linux系统中,motd文件用于在用户登录时显示一些系统相关的信息,如系统版本、登录提示、重要通知等。motd文件可以用于向用户提供一些重要的系统信息或者警告。
总结起来,modprobe.d/目录用于配置内核模块加载选项,modules-load.d/目录用于配置系统启动时自动加载的内核模块,而motd文件则用于在用户登录时显示系统相关的信息。
使用iptables规则实现负载均衡
随机:(Random balancing)
iptables -A PREROUTING -t nat -p tcp -d 192.168.1.1 --dport 27017 -m statistic --mode random --probability 0.33 -j DNAT --to-destination 10.0.0.2:1234
iptables -A PREROUTING -t nat -p tcp -d 192.168.1.1 --dport 27017 -m statistic --mode random --probability 0.33 -j DNAT --to-destination 10.0.0.3:1234
iptables -A PREROUTING -t nat -p tcp -d 192.168.1.1 --dport 27017 -j DNAT --to-destination 10.0.0.4:1234
轮询:(Round Robin)
有3个server,3个server轮询处理流量包,则规则配置如下:
iptables -A PREROUTING -t nat -p tcp -d 192.168.1.1 --dport 27017 -m statistic --mode nth --every 3 --packet 0 -j DNAT --to-destination 10.0.0.2:1234
iptables -A PREROUTING -t nat -p tcp -d 192.168.1.1 --dport 27017 -m statistic --mode nth --every 2 --packet 0 -j DNAT --to-destination 10.0.0.3:1234
iptables -A PREROUTING -t nat -p tcp -d 192.168.1.1 --dport 27017 -j DNAT --to-destination 10.0.0.4:1234
nf_conntrack: table full, dropping packet的更多相关文章
- kernel nf_conntrack: table full, dropping packet[转载]
http://blog.yorkgu.me/2012/02/09/kernel-nf_conntrack-table-full-dropping-packet/ 综合:ip_conntrack就是li ...
- [转]nf_conntrack: table full, dropping packet 连接跟踪表已满,开始丢包 的解决办法
nf_conntrack: table full, dropping packet 连接跟踪表已满,开始丢包 的解决办法 中午业务说机器不能登录,我通过USM管理界面登录单板的时候发现机器没有僵 ...
- ip_conntrack or nf_conntrack : table full, dropping packet
nf_conntrack: table full, dropping packet ip_conntrack or nf_conntrack : table full, dropping packet ...
- ocalhost kernel: [244840.301449] nf_conntrack: nf_conntrack: table full, dropping packet
nf_conntrack: table full, dropping packet. 终结篇 "连接跟踪表已满,开始丢包"!相信不少用iptables的同学都会见过这个错误信息 ...
- ECS实例中的应用偶尔出现丢包现象并且内核日志(dmesg)存在“kernel: nf_conntrack: table full, dropping packet”的报错信息
问题描述 连接ECS实例中的应用时偶尔出现丢包现象.经排查,ECS实例的外围网络正常,但内核日志(dmesg)中存在"kernel: nf_conntrack: table full, dr ...
- linux云主机cpu一直很高降不下来,系统日志报nf_conntrack: table full, dropping packet.
在启用了iptables web服务器上,流量高的时候经常会出现下面的错误: ip_conntrack: table full, dropping packet 这个问题的原因是由于web服务器收到了 ...
- 路由跟踪表满,日志报错nf_conntrack: table full, dropping packet.
“连接跟踪表已满,开始丢包”!相信不少用iptables的同学都会见过这个错误信息吧,这个问题曾经也困扰过我好长一段时间.此问题的解决办法有四种(nf_conntrack 在CentOS 5 / ke ...
- nf_conntrack: table full, dropping packet. 问题
查出目前 ip_conntrack 记录最多的前十名 IP: # cat /proc/net/nf_conntrack|awk '{print $8}'|cut -d'=' -f 2|sort |un ...
- 解决nf_conntrack: table full, dropping packet问题
" > /proc/sys/net/nf_conntrack_max iptables -t raw -A PREROUTING -p tcp -m tcp --dport -j NO ...
- nf_conntrack: table full, dropping packet解决方法
https://blog.csdn.net/yanggd1987/article/details/45886913
随机推荐
- 在unity中制作live2d参数的AnimationClip[简单随笔]
假定:已经成功导入模型.相关文档参考:https://github.com/gtf35/live2d_unity_sdk_chinese_document(人力翻译版的Live2d SDK文档) 全部 ...
- LeetCode 周赛 343(2023/04/30)结合「下一个排列」的贪心构造问题
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,我是小彭. 今天是五一假期的第二天,打周赛的人数比前一天的双周赛多了,难道大家都只玩一天吗?这场周赛 ...
- 咚咚咚,你的王国之泪已上线「GitHub 热点速览」
本周最大的热点,莫过于 Mojo 语言了,几大媒体均有报道这门兼顾 Python 优点和性能的新语言.当然还有凭借 Switch 游戏<塞尔达传说·王国之泪>登上热榜,获得 3,500+ ...
- MySQL 中读写分离数据延迟
MySQL 中读写分离可能遇到的问题 前言 读写分离的架构 基于客户端实现读写分离 基于中间代理实现读写分离 MySQL 中如何保证主从数据一致 循环复制问题 主从同步延迟 主从同步延迟的原因 主从延 ...
- 2023-02-22:请用go语言调用ffmpeg,保存mp4文件的视频帧,每帧用ppm图片保存。
2023-02-22:请用go语言调用ffmpeg,保存mp4文件的视频帧,每帧用ppm图片保存. 答案2023-02-22: 使用 github.com/moonfdd/ffmpeg-go 库. 先 ...
- 2022-06-15:薯队长最近在参加了一个活动,主办方提供了N个礼物以供挑选, 每个礼物有一个价值,范围在0 ~ 10^9之间, 薯队长可以从中挑选k个礼物。 返回:其中价值最接近的两件礼物之间相差
2022-06-15:薯队长最近在参加了一个活动,主办方提供了N个礼物以供挑选, 每个礼物有一个价值,范围在0 ~ 10^9之间, 薯队长可以从中挑选k个礼物. 返回:其中价值最接近的两件礼物之间相差 ...
- 关于JavaBean和vo的解释
前景提要 最近在学JavaWeb,接触到了很多java后端的概念,其中JavaBean和vo的概念一直让我模糊不清,查询众多资料后写个博客记录一下. 首先先贴一下两者的概念: JavaBean Jav ...
- 在vue 项目中嵌入jsp页面
今日一个项目中一块功能模块是其他系统使用jsp已经开发好的页面,想着直接将其嵌入到当前的vue项目中节约开发成本:但是发现并非想象的那么简单 创建一个server.vue组件加载jsp页面 1 .第一 ...
- Java方法的调用以及方法参数传递、方法的递归调用
一.方法的调用以及方法参数传递 1.方法的定义: 访问修饰符 返回值类型 方法名 ([参数列表]){ 方法体 } 如果方法体中需要一些未知的数据作为执行条件,那么这些数据可以作为参数. 如果方 ...
- Hive执行计划之一文读懂Hive执行计划
目录 概述 1.hive执行计划的查看 2.学会查看Hive执行计划的基本信息 3.执行计划步骤操作过程 4.explain extended 概述 Hive的执行计划描述了一个hiveSQL语句的具 ...