nf_conntrack内核模块常见问题

nf_conntrack内核模块常见问题

  • 问题描述
  • 排查步骤
    • 前置条件:启用nf_conntrack内核模块
    • 检查nf_conntrack配置
  • 解决办法1:半数减少nf_conntrack buckets的值
  • 解决办法2:加倍调大m.min_free_kbytes值
  • 解决办法3:Linux社区权威答复-忽略告警

问题描述

内核报错 falling back to vmalloc


排查步骤


前置条件:启用nf_conntrack内核模块

检查nf_conntrack内核模块是否启用

# 检查当前系统是否已经安装了 nf_conntrack 内核模块
lsmod | grep nf_conntrack

image.png
image.png
如果输出中没有nf_conntrack,则未启用该模块

# 低版本内核启用内核模块
modprobe nf_conntrack_ipv4# 高版本内核nf_conntrack_ipv4被nf_conntrack替换了
modprobe nf_conntrack

检查nf_conntrack配置

参数默认值解释
net.netfilter.nf_conntrack_buckets65536网络连接跟踪表(conntrack table)的桶(bucket)数量
net.netfilter.nf_conntrack_max262144连接跟踪表中可以存储的最大连接跟踪条目数
net.nf_conntrack_max262144网络连接跟踪表(conntrack table)的最大连接数
# 检查nf_conntrack配置
sysctl -a | grep -i nf_conntrack# 查看网络连接跟踪表(conntrack table)的桶(bucket)数量
# 查看连接跟踪表中可以存储的最大连接跟踪条目数
# 查看网络连接跟踪表(conntrack table)的最大连接数
sysctl -a|grep -E "net.netfilter.nf_conntrack_buckets|net.netfilter.nf_conntrack_max|net.nf_conntrack_max"

image.png

# 查看连接跟踪模块(nf_conntrack)中的哈希表大小
# net.netfilter.nf_conntrack_buckets 参数是 hashsize 参数的一个别名
## 较大的哈希表大小可以支持更多的连接跟踪,但也会占用更多的内存
cat /sys/module/nf_conntrack/parameters/hashsize# 通常和net.netfilter.nf_conntrack_buckets的值是一样的

image.png


解决办法1:半数减少nf_conntrack buckets的值

https://blog.csdn.net/whatday/article/details/107552387

出现报错localhost kernel: nf_conntrack: falling back to vmalloc.说明nf_conntrack buckets设置过大,按半数减小,进行测试

# 修改连接跟踪模块(nf_conntrack)中的哈希表大小
echo 3072200 > /sys/module/nf_conntrack/parameters/hashsize# 修改连接跟踪表中可以存储的最大连接跟踪条目数
sysctl -w net.netfilter.nf_conntrack_max=2097152# 修改网络连接跟踪表(conntrack table)的最大连接数
sysctl -w net.nf_conntrack_max=2097152

image.png

如果仍然报错误falling back to vmalloc,继续按半数减小,进行测试。


解决办法2:加倍调大m.min_free_kbytes值

https://access.redhat.com/solutions/6958239
红帽和Oracle官方建议
vm.min_free_kbytes该参数是:内核操作保留的最少可用RAM,该值不应超过系统内存的 0.4%2GB,一般调试方法是加倍 vm.min_free_kbytes 的值。

vm.min_free_kbytes

关键是在于调整内存的内核参数的时候!调大的风险远大于调小的风险!如果有人想将 vm.min_free_kbytes 调大,千万要注意当前的水位,如果一旦调大 vm.min_free_kbytes 立刻触
directreclaim,可能会导致机器hang住,ping的通,ssh不上,影响业务!hang住的原因是当 vm.min_free_kbytes 是512M的时候,此时 free只有1G,此时正常运行,此时如果调大
vm.min_free_kbytes 到5G,将会direct reclaim失败。


解决办法3:Linux社区权威答复-忽略告警

该告警并无实质性影响,RHEL8中已经删除该告警
image.png

这是Linux内核社区 关于消除该告警的补丁邮件
https://lore.kernel.org/lkml/55A8C428.1000005@gmx.de/T/

image.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/166332.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

什么是 npm —— 写给初学者的编程教程

原文链接: 什么是 npm —— 写给初学者的编程教程 自 2009 年以来,Node.js 一直席卷全球。成千上万个系统基于 Node.js 构建,促使开发者在社区宣称“JavaScript 正在吞噬软件”。 Node 成功的主要因素之一是它广受欢迎的软件包管理器——np…

前k个高频单词(C++实现)

前k个高频单词 题目思路代码代码讲解 题目 思路 通过统计字符串的出现次数,并根据出现次数和字典序对字符串进行排序,找出出现频率最高的前k个字符串。使用一个自定义的仿函数作为排序的比较函数,通过map容器进行统计,然后将结果…

Linux:strace 简介

文章目录 1. 前言2. 什么是 strace ?3. 使用 strace3.1 追踪指定进程3.1.1 通过程序名追踪进程3.1.2 通过 进程 ID (PID) 追踪程序3.1.3 追踪 子进程 或 线程 3.2 系统调用情况统计3.3 追踪过滤3.3.1 追踪指定的系统调用集合3.3.2 追踪对指定文件句柄集合操作的系统调用3.3.3 …

前端已死?看看我的秋招上岸历程

背景 求职方向:web前端 技术栈:vue2、springboot(学校开过课,简单的学习过) 实习经历:两段,但都是实训类的,说白了就是类似培训,每次面试官问起时我也会坦诚交代&…

关于鸿蒙网络请求的问题

https://developer.huawei.com/consumer/cn/forum/topic/0204136145853212268?fid0102683795438680754 鸿蒙OS 代码 import http from ohos.net.http;export const httpUtils (url: string, data: any) > {return new Promise((resolve, reject) > {let httpRequest …

创意设计与个性化定制:酒精壁炉的独特之处

在当今家居装饰的潮流中,人们越来越注重个性化和创意,而酒精壁炉正是在这一趋势中崭露头角。它不仅成为家居的温馨之选,更因其设计的灵活性而成为创意焦点,吸引了越来越多注重家居设计的人群。 酒精壁炉的设计灵活性为家居注入了新…

vue的package.json详细说明

前言 package.json 文件是一个非常重要的文件,它用于存储关于项目的元信息以及依赖项。在 Vue.js 项目中,package.json 文件描述了项目的名称、版本、描述、作者、依赖项、脚本命令等信息。 说明 package.json 文件常见的 详细说明: 1.名称 (name): 项目的名称。遵循反向…

工作流引擎架构设计

一个应用MIS的系统的架构离不开工作流引擎,具有流程引擎思维的架构人员设计系统的时候就有流程的思维,他区别于过程思维,过程思维开发出来的系统,用户面对的是菜单、模块。而流程思维设计出来的系统就是发起、待办、在途、查询、近…

SELinux refpolicy详解(2)

接前一篇文章:SELinux refpolicy详解(1) 本文内容引自: Documentation SELinuxProject/refpolicy Wiki GitHub 4. 入门指南 文档是参考策略的主要目标之一。入门指南(https://github.com/SELinuxProject/refpolicy/wiki/GettingStarted)提供了有关编写参考策略模块的…

关于vue3项目中 vite.config.js项目配置 多个请求地址代理配置

关于VUE3 vite.config.js文件配置相关 提示:本文记录了我们项目中使用到了多个不同的接口请求前缀地址配置代理,如果有更好的优化方案欢迎大佬指点呀: 以下是我最近项目中的vite.config.js文件配置,由于刚开始vue3不久&#xff…

JS 类型转换机制

这篇写得不错: 百度安全验证 包括显示转换(就是调用函数)、隐式转换(运算符 - 时自动转换成数字/字符串) 注意到: abc-1 //NaN 非法字符转换为数字 结果是NaN

LeetCode 1410. HTML 实体解析器:字符串匹配

【LetMeFly】1410.HTML 实体解析器:字符串匹配 力扣题目链接:https://leetcode.cn/problems/html-entity-parser/ 「HTML 实体解析器」 是一种特殊的解析器,它将 HTML 代码作为输入,并用字符本身替换掉所有这些特殊的字符实体。…

【点云surface】基于多项式重建的平滑和法线估计

1 介绍 基于多项式重建的平滑和法线估计(Smoothing and normal estimation based on polynomial reconstruction)是一种常用的点云处理方法,用于平滑点云数据并估计每个点的法线信息。 该方法基于Moving Least Squares(MLS&…

docker安装nacos,实现和mysql容器的通信

1.下载nacos镜像 docker pull nacos/nacos-server2. 启动nacos 启动命令如下: docker run -d -p 8848:8848 --name nacos \ -e JVM_XMS256m \ -e JVM_XMX256m \ -e MODEstandalone \ -e SPRING_DATASOURCE_PLATFORMmysql \ -e MYSQL_SERVICE_HOST192.168.131.223…

连接的原理(待修改)

搞数据库⼀个避不开的概念就是Join,翻译成中⽂就是连接。 相信很多⼩伙伴在初学连接的时候有些⼀脸懵逼,理解了连接的语义之后⼜可能不明⽩各个表中的记 录到底是怎么连起来的,以⾄于在使⽤的时候常常陷⼊下边两种误区: 误区⼀&…

linux磁盘清理

目录 排查过程1、查看磁盘占用情况2. 按照占用大小进行倒排-当前目录及其子目录3.当前目录磁盘占用情况 清理命令 排查过程 1、查看磁盘占用情况 df -hdf -h 命令用于显示磁盘空间的使用情况,以人类可读的方式呈现,其中:df 是 “disk free”…

“AI就绪”新计划,亚马逊云科技到2025年向200万人提供免费AI技能培训

AI就绪(AI Ready)计划 到2025年为全球200万人提供 免费人工智能(AI)技能培训和教育资源 亚马逊云科技宣布启动“AI就绪(AI Ready)”计划,旨在到2025年为全球200万人提供免费人工智能&#xff08…

Python与设计模式--适配器模式

7-Python与设计模式–适配器模式 一、外包人员系统兼容 假设某公司A与某公司B需要合作,公司A需要访问公司B的人员信息,但公司A与公司B协议接口不同, 该如何处理?先将公司A和公司B针对各自的人员信息访问系统封装了对象接口。cla…

易点易动固定资产管理系统:全生命周期管理的理想选择

在现代企业中,固定资产管理是一项至关重要的任务。为了确保企业的资产安全、提高资产利用率,全面管理固定资产的生命周期至关重要。易点易动固定资产管理系统为企业提供了一种全面的解决方案,实现了从固定资产申购、采购、入库、领用、退库、…

linux 内存回收mglru算法代码注释2

mglru与原lru算法的兼容 旧的lru算法有active与inactive两代lru,可参考linux 内存回收代码注释(未实现多代lru版本)-CSDN博客 新的算法在引入4代lru的同时,还引入了tier的概念。 新旧算法的切换的实现在lru_gen_change_state&a…