首页 > 其他分享 >如何解决系统报错:nf_conntrack: table full, dropping packets

如何解决系统报错:nf_conntrack: table full, dropping packets

时间:2023-06-12 22:14:04浏览次数:116  
标签:full ## max packets nf 报错 conntrack net netfilter

问题

在系统日志中(/var/log/messages),有时会看到大面积的下面的报错:

nf_conntrack: table full, dropping packet

这说明系统接到了大量的连接请求,但是系统的连接跟踪表已经满了,无法再记录新的连接了。这时候,系统会丢弃新的连接请求。

在 CentOS 下,默认的连接跟踪表大小是 65536,可以通过下面的命令查看:

cat /proc/sys/net/netfilter/nf_conntrack_max

如果流量比较小,这个值是没问题的,但如果流量巨大,这个值可能就有点太小了。

解决方法

显然,调大最大值的限制就可以了。不过更大的限制意味着可以承接更多连接,意味着要耗费更多资源,这点要注意。

查看当前有多少活跃连接:

cat /proc/sys/net/netfilter/nf_conntrack_count

如果这个值跟上面介绍的 nf_conntrack_max 已经很接近了,就说明快满了,需要调大 nf_conntrack_max。可以使用下面的命令临时调大:

echo 524288 > /proc/sys/net/netfilter/nf_conntrack_max

如果不想每次重启都要重新设置,可以修改 /etc/sysctl.conf,加入下面的配置:

net.netfilter.nf_conntrack_max = 524288

为了缓解大量连接的问题,您可能还需要考虑减少服务器等待连接关闭/超时的时间。在 /etc/sysctl.conf 中加入下面的配置:

net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 60

如何监控

平时使用 categraf(https://github.com/flashcatcloud/categraf) 监控就可以了,categraf 提供了 input.conntrack 采集插件,可以采集 conntrack 的信息,建议采集配置如下:

conf/input.conntrack/conntrack.toml:

files = [
    "ip_conntrack_count",
    "ip_conntrack_max",
    "nf_conntrack_count",
    "nf_conntrack_max"
]

dirs = [
    "/proc/sys/net/ipv4/netfilter",
    "/proc/sys/net/netfilter"
]

# ignore errors
quiet = true

完事配置一个类似下面的监控规则即可:

conntrack_ip_conntrack_count / ip_conntrack_max > 0.8

另一个监控方案,是直接监控系统日志,算是一个兜底监控方案,可以采用 catpaw 来监控,catpaw 提供了 journaltail 采集插件,可以读取近期系统日志,grep 关键字,如果出现异常关键字就告警,配置如下:

conf.d/p.journaltail/journaltail.toml:

[[instances]]
# journalctl -S -${time_span}
time_span = "1m"
# relationship: or
keywords = ["Out of memory", "nf_conntrack: table full, dropping packets"]
# check rule name
check = "Critical System Errors"
# # gather interval
interval = "30s"

[instances.alerting]
## Enable alerting or not
enabled = true
## Same functionality as Prometheus keyword 'for'
for_duration = 0
## Minimum interval duration between notifications
repeat_interval = "5m"
## Maximum number of notifications
repeat_number = 3
## Whether notify recovery event
recovery_notification = true
## Choice: Critical, Warning, Info
default_severity = "Warning"

catpaw 的入门使用,可以参考文章:《太卷了,史上最简单的监控系统 catpaw 简介

标签:full,##,max,packets,nf,报错,conntrack,net,netfilter
From: https://www.cnblogs.com/ulricqin/p/17476210.html

相关文章

  • 2023-06-12 运行旧的rouyi前端项目报错:unknown property 'disableHostCheck'
    运行,报错ERRORValidationError:Invalidoptionsobject.DevServerhasbeeninitializedusinganoptionsobjectthatdoesnotmatchtheAPIschema.-optionshasanunknownproperty'disableHostCheck'.Thesepropertiesarevalid:......
  • 关于mybaits批量更新和批量插入报错问题
    今天在做项目的时候遇到了一个棘手的问题,在执行批量更新的时候报如下图这个错误 代码如下 这是mybatis很常规的批量更新操作的写法,而且把报错日志中的sql拿出来后在数据库执行也能正常的执行很纳闷,这是因为啥呢?网上查阅资料,大部分都是说,sql里面有数据库的关键字,让加``这个......
  • 关于VS2022使用EF生成实体模型报错的问题:运行转换:System.NullReferenceException:对象
    起因:之前版本vs2022生成EF模型一直没有问题,在更新了最新的vs2022之后,版本号17.6+,出现此问题:运行转换:System.NullReferenceException:对象引用未设置为对象的示例。在Microsoft.VisualStudio.TextTemplatingD21DB4521EFD493FAE41A9CE9DA80C875F3084552987498BD518713BDE91D14A......
  • 宝典相授,无错在手 |昇思MindSpore报错调试宝典(六):网络构建与训练类报错之资源不足
    上一期讲解了网络构建与训练类报错之算子执行错误该如何定位解决,相信如输入异常、算子实现错误之类算子执行问题已经难不倒大家了。那么本期我们看看网络构建与训练类报错常见的最后一个问题分类,即资源不足方面的报错,如遇到资源不足方面的报错,如 Out Of Memory、memory isn’t......
  • 轻松调试,让报错无处遁形 |昇思MindSpore报错调试宝典(五):网络构建与训练类报错之算子执
    上一期讲解了由于输入参数不符合要求、算子功能不支持等算子编译错误问题该如何定位解决,那么在算子执行的时候也会遇到很多报错,比如输入数据异常、算子实现错误、功能限制、资源限制等问题,遇到这类情形我们正常可以采用类比的分析方法,本期以mindspore.ops.ResizeBicubic算子内部数......
  • 定位调试两手抓,报错真的不可怕 | MindSpore报错调试宝典(二):网络构建与训练类报错之cont
    上一期我们讲解了数据加载与处理类报错如何调试解决,今天给大家继续带来网络构建与训练类报错中的context配置问题,本期仍将以案例的形式展开,详细讲解mindspore.set_context算子的使用方法以及配置方法,希望大家在后续使用context算子过程中可以轻松解决相关的报错问题!同时也欢迎大家......
  • 微信小程序设置 本地图片为背景图 报错
    微信小程序通过wxss进行设置背景图报错经查询,发现微信小程序中,将网络图片或base64图片设置为背景图片可正常显示,将本地图片设置为背景图片则不能显示,解决方法有三种,个人采用的是第三种方法。1.本地图片转换为base64格式在线转格式2.使用行内样式<viewclass="flex_view"......
  • Playwright运行报错的解决
    未安装浏览器报错playwright._impl._api_types.Error:Executabledoesn'texistat/home/deploy/.cache/ms-playwright/firefox-1403/firefox/firefox╔═════════════════════════════════════════════════════════......
  • [转]POI 解析excel报错 java.lang.NoClassDefFoundError: org/apache/poi/ss/usermode
    前几天做了一个excel上传导入功能,为了通用想同步支持xls和xlsx格式。代码编写期并没有报错,所需要的类也都有。可是应用启动完测式功能的时候报了这么一个错Causedby:java.lang.NoClassDefFoundError:org/apache/poi/ss/usermodel/Date1904Support这是为什么呢?我第一感觉是jar......
  • XXL-JOB手工执行任务报错:msg:xxl-rpc remoting error(Connection refused (Connection
    【问题描述】XXL-JOB手工执行任务报错:msg:xxl-rpcremotingerror(Connectionrefused(Connectionrefused)),forurl  【原因分析】 在xxl-job服务端所在的服务器上面去telnetxxl-job所在的客户端服务器的9986端口,提示拒绝连接:对于端口拒绝连接的问题,应该是网络的问......