当前位置: 首页 > news >正文

【经验分享】Linux 系统安装后内核参数优化

在 Linux 系统安装后,进行内核优化有助于提升系统的性能、稳定性和安全性。以下是一些常见的内核优化操作:

修改/etc/sysctl.conf 文件
执行sysctl -p使配置生效。

kernel.shmmax = 135185569792
kernel.shmall = 4294967296
fs.aio-max-nr = 3145728
fs.file-max = 6815744
kernel.shmmni = 4096
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
kernel.panic_on_oops = 1
net.ipv4.ipfrag_high_thresh=41943040
net.ipv4.ipfrag_low_thresh=40894464
net.ipv4.ipfrag_time=60
kernel.sem = 1024 60000 1024 128#based on best practice
net.ipv4.ipfrag_high_thresh=41943040
net.ipv4.ipfrag_low_thresh=40894464
net.ipv4.ipfrag_time=60
kernel.sem = 1024 60000 1024 128#if there are issue like the one described in note 2163270.1
vm.dirty_background_ratio=1
vm.dirty_ratio=3

以下是对这些 sysctl.conf 配置项的详细解释:

共享内存相关参数

kernel.shmmax = 135185569792
  • 内涵kernel.shmmax 定义了单个共享内存段(Shared Memory Segment)能够分配的最大字节数。共享内存是一种进程间通信(IPC)机制,多个进程可以访问同一块物理内存区域,从而实现高效的数据共享。
  • 意义:在需要大量数据共享的应用场景中,如数据库管理系统,较大的 shmmax 值可以避免因共享内存段大小限制而导致的性能问题或错误。该值设置为 135185569792 字节(约 126GB),为应用程序提供了较大的共享内存空间。
kernel.shmall = 4294967296
  • 内涵kernel.shmall 表示系统范围内可以使用的共享内存页面总数。页面是操作系统进行内存管理的基本单位,不同系统的页面大小可能不同(通常为 4KB 或 8KB)。
  • 意义:该参数限制了系统中所有共享内存段的总大小。通过设置合适的 shmall 值,可以确保系统有足够的页面来支持共享内存的使用。这里设置为 4294967296,允许系统使用较多的共享内存页面。
kernel.shmmni = 4096
  • 内涵kernel.shmmni 定义了系统中可以同时存在的共享内存段的最大数量。
  • 意义:在多进程共享内存的场景中,限制共享内存段的数量可以防止系统资源被过度占用。设置为 4096 意味着系统最多可以创建 4096 个共享内存段。

文件系统相关参数

fs.aio-max-nr = 3145728
  • 内涵fs.aio-max-nr 表示系统中可以同时存在的异步 I/O(Asynchronous I/O)请求的最大数量。异步 I/O 允许应用程序在发起 I/O 请求后继续执行其他任务,而不必等待 I/O 操作完成。
  • 意义:对于需要处理大量并发 I/O 请求的应用程序,如数据库和文件服务器,增加该参数的值可以提高系统的 I/O 处理能力。设置为 3145728 允许系统同时处理较多的异步 I/O 请求。
fs.file-max = 6815744
  • 内涵fs.file-max 定义了系统中可以同时打开的文件描述符的最大数量。文件描述符是操作系统用于标识打开文件的整数,每个打开的文件、套接字等都有一个对应的文件描述符。
  • 意义:在高并发的应用场景中,如 Web 服务器,可能会同时打开大量的文件和套接字。增加 fs.file-max 的值可以避免因文件描述符耗尽而导致的错误。

网络相关参数

net.ipv4.ip_local_port_range = 9000 65500
  • 内涵net.ipv4.ip_local_port_range 指定了系统在创建 TCP 或 UDP 套接字时可以使用的本地端口号范围。端口号是用于标识网络应用程序的 16 位整数,范围从 0 到 65535。
  • 意义:默认情况下,系统使用的本地端口号范围可能较小,在高并发的网络环境中可能会导致端口号耗尽。通过扩大本地端口号范围,可以增加系统的并发连接能力。这里将范围设置为 900065500
net.core.rmem_default = 262144net.core.rmem_max = 4194304
  • 内涵net.core.rmem_default 是套接字接收缓冲区的默认大小(以字节为单位),而 net.core.rmem_max 是套接字接收缓冲区的最大大小。接收缓冲区用于临时存储从网络接收到的数据。
  • 意义:适当调整接收缓冲区的大小可以提高网络数据的接收效率。较大的接收缓冲区可以减少数据丢失的可能性,特别是在网络带宽较高或数据传输速率较快的情况下。
net.core.wmem_default = 262144net.core.wmem_max = 1048586
  • 内涵net.core.wmem_default 是套接字发送缓冲区的默认大小(以字节为单位),net.core.wmem_max 是套接字发送缓冲区的最大大小。发送缓冲区用于临时存储要发送到网络的数据。
  • 意义:调整发送缓冲区的大小可以优化网络数据的发送性能。较大的发送缓冲区可以减少应用程序等待网络发送的时间,提高数据发送的效率。
net.ipv4.ipfrag_high_thresh=41943040net.ipv4.ipfrag_low_thresh=40894464
  • 内涵:这两个参数与 IP 分片(IP Fragmentation)有关。当 IP 数据包的大小超过网络接口的最大传输单元(MTU)时,数据包会被分片。net.ipv4.ipfrag_high_thresh 是 IP 分片缓存的高水位线,当缓存中的分片数据达到该值时,系统会开始丢弃新的分片;net.ipv4.ipfrag_low_thresh 是低水位线,当缓存中的分片数据减少到该值以下时,系统会恢复接收新的分片。
  • 意义:通过合理设置这两个参数,可以避免 IP 分片缓存占用过多的系统内存,同时确保在必要时能够正常处理 IP 分片。
net.ipv4.ipfrag_time=60
  • 内涵net.ipv4.ipfrag_time 表示 IP 分片在缓存中保留的最长时间(以秒为单位)。如果在该时间内所有分片没有全部到达,则会丢弃这些分片。
  • 意义:设置合适的分片保留时间可以避免因丢失分片而导致的缓存占用时间过长,提高系统资源的利用率。

内核其他参数

kernel.panic_on_oops = 1
  • 内涵kernel.panic_on_oops 是一个布尔值参数,当设置为 1 时,表示在内核发生严重错误(Oops)时,系统会立即进入崩溃(Panic)状态。
  • 意义:在生产环境中,内核错误可能会导致系统不稳定或数据丢失。通过设置该参数,可以在发生严重错误时及时停止系统,避免进一步的问题,并方便进行故障排查。
kernel.sem = 1024 60000 1024 128
  • 内涵kernel.sem 用于设置 System V 信号量(Semaphores)的相关参数,这四个值分别表示:
    • 每个信号量集(Semaphore Set)中允许的最大信号量数量。
    • 系统范围内允许的最大信号量数量。
    • 每个信号量集的最大操作数量。
    • 系统范围内允许的最大信号量集数量。
  • 意义:信号量是一种用于进程同步和互斥的机制。通过调整这些参数,可以满足不同应用程序对信号量的需求,避免因信号量资源不足而导致的错误。

虚拟内存相关参数

vm.dirty_background_ratio=1vm.dirty_ratio=3
  • 内涵vm.dirty_background_ratio 表示当系统中脏页(Dirty Pages,即已修改但尚未写入磁盘的内存页面)的比例达到该值时,内核会启动一个后台进程将脏页写入磁盘;vm.dirty_ratio 表示当脏页比例达到该值时,应用程序在进行写操作时会被阻塞,直到部分脏页被写入磁盘。
  • 意义:适当调整这两个参数可以平衡内存使用和磁盘 I/O 性能。较小的值可以减少脏页在内存中停留的时间,降低数据丢失的风险,但可能会增加磁盘 I/O 负担;较大的值可以减少磁盘 I/O 次数,但可能会导致系统在崩溃时丢失更多的数据。

这些内核参数的调整旨在优化系统的性能、稳定性和资源利用率,以满足不同应用场景的需求。

相关文章:

【经验分享】Linux 系统安装后内核参数优化

在 Linux 系统安装后,进行内核优化有助于提升系统的性能、稳定性和安全性。以下是一些常见的内核优化操作: 修改/etc/sysctl.conf 文件 执行sysctl -p使配置生效。 kernel.shmmax 135185569792 kernel.shmall 4294967296 fs.aio-max-nr 3145728 fs.fi…...

linux统计文件夹下有多少个.rst文件行数小于4行

您可以使用 find 命令结合 wc 命令来统计文件夹下 .rst 文件行数小于 4 行的文件数量。以下是一个具体的命令示例&#xff1a; find /path/to/directory -name "*.rst" -type f -exec wc -l {} | awk $1 < 4 | wc -l解释&#xff1a; find /path/to/directory …...

使用开源项目xxl-cache构建多级缓存

xxl-cache简介 官网地址&#xff1a;https://www.xuxueli.com/xxl-cache/ 概述 XXL-CACHE 是一个 多级缓存框架&#xff0c;高效组合本地缓存和分布式缓存(RedisCaffeine)&#xff0c;支持“多级缓存、一致性保障、TTL、Category隔离、防穿透”等能力&#xff1b;拥有“高性…...

LVDS接口总结--(5)IDELAY3仿真

仿真参考资料如下&#xff1a; https://zhuanlan.zhihu.com/p/386057087 timescale 1 ns/1 ps module tb_idelay3_ctrl();parameter REF_CLK 2.5 ; // 400MHzparameter DIN_CLK 3.3 ; // 300MHzreg ref_clk ;reg …...

Vue3(1)

一.create-vue // new Vue() 创建一个应用实例 > createApp() // createRouter() createStore() // 将创建实例进行了封装&#xff0c;保证每个实例的独立封闭性import { createApp } from vue import App from ./App.vue// mount 设置挂载点 #app (id为app的盒子) createA…...

玩转适配器模式

文章目录 解决方案现实的举例适用场景实现方式适配器模式优缺点优点:缺点:适配器模式可比上一篇的工厂模式好理解多了,工厂模式要具有抽象的思维。这个适配器模式,正如字面意思,就是要去适配某一件物品。 假如你正在开发一款股票市场监测程序, 它会从不同来源下载 XML 格…...

2.11寒假作业

web&#xff1a;[SWPUCTF 2022 新生赛]js_sign 打开环境是这样的&#xff0c;随便输入进行看看 提示错误&#xff0c;看源码其中的js代码 这个代码很容易理解&#xff0c;要让输入的内容等于对应的字符串&#xff0c;显然直接复制粘贴是错的 这串字符看起来像是base64加密&…...

untiy 冰面与地面,物理材质的影响

效果 WeChat_20250211165601...

视频编解码标准中的 Profile 和 Level

视频编解码标准中的 Profile 和 Level 在视频编码标准(如 H.264/AVC、HEVC/H.265、H.266/VVC、AV1)中,Profile(配置文件) 和 Level(级别) 是两个重要的概念,它们用于定义编码器和解码器支持的特性、功能以及视频质量与编码效率之间的权衡。 Profile(配置文件) Pro…...

通用的将jar制作成docker镜像sh脚本

通用的将jar制作成docker镜像sh脚本 为了在将 JAR 制作成 Docker 镜像的过程中创建日志目录&#xff0c;可以对之前的脚本进行扩展。以下是改进后的脚本&#xff0c;会在镜像构建时在容器内创建日志目录&#xff0c;并将日志文件挂载到该目录下。 在生成的 Dockerfile 中添加…...

AUTOGPT:基于GPT模型开发的实验性开源应用程序; 目标设定与分解 ;;自主思考与决策 ;;信息交互与执行

目录 AUTOGPT是一款基于GPT模型开发的实验性开源应用程序目标设定与分解自主思考与决策信息交互与执行AUTOGPT是一款基于GPT模型开发的实验性开源应用程序 目标设定与分解 自主思考与决策 信息交互与执行 AUTOGPT是一款基于GPT模型开发的实验性开源应用程序,它能让大语言模…...

异步线程中使用RestTemplate注入空指针解决

在某种情况下&#xff0c;调用第三方或者jar文件中封装的httpClient时&#xff0c;上层调用采用异步线程调用&#xff0c;导致底层的RestTemplate注入为空&#xff0c;无法正常调用&#xff0c;需要强制将spring的上下文绑定到异步线程中。 强制传递 Spring 上下文到异步线程 …...

2024BaseCTF_week4_web上

继续&#xff01;冲冲冲 目录 圣钥之战1.0 nodejs 原型 原型链 原型链污染 回到题目 flag直接读取不就行了&#xff1f; 圣钥之战1.0 from flask import Flask,request import jsonapp Flask(__name__)def merge(src, dst):for k, v in src.items():if hasattr(dst, __geti…...

说一下 jvm 有哪些垃圾回收器?

JVM 垃圾回收器对比表 垃圾回收器类型工作方式回收方式停顿时间适用场景优点缺点常见问题常见配置Serial GC串行单线程&#xff0c;STW年轻代&#xff1a;复制算法 老年代&#xff1a;标记-整理长小内存、单核CPU&#xff0c;如桌面应用或嵌入式设备简单高效&#xff0c;适用于…...

react国际化配置react-i18next详解

react PC端项目构建TS&#xff0c;react18.2.0antdviteaxiosreduxsassts 完整版代码下载&#xff1a; https://download.csdn.net/download/randy521520/88922625 react PC端项目构建&#xff0c;react18.2.0antdviteaxiosreduxsass完整版代码下载&#xff1a; https://downloa…...

Java并发编程——上下文切换、死锁、资源限制

文章目录 1.1上下文切换&#xff08;1&#xff09;上下文切换的概念&#xff08;2&#xff09;多线程一定比单线程快吗&#xff1f;&#xff08;3&#xff09;测量上下文切换如何减少上下文切换 1.2 死锁&#xff08;1&#xff09;死锁的定义&#xff08;2&#xff09;死锁产生…...

MS08067练武场--WP

免责声明&#xff1a;本文仅用于学习和研究目的&#xff0c;不鼓励或支持任何非法活动。所有技术内容仅供个人技术提升使用&#xff0c;未经授权不得用于攻击、侵犯或破坏他人系统。我们不对因使用本文内容而引起的任何法律责任或损失承担责任。 注&#xff1a;此文章为快速通关…...

ubuntu文件同步

1. 使用 rsync 同步文件 rsync 是一个常用的文件同步工具&#xff0c;可以在本地或远程系统之间同步文件和目录。 基本用法&#xff1a; rsync -avz /源目录/ 目标目录/-a&#xff1a;归档模式&#xff0c;保留文件属性。-v&#xff1a;显示详细输出。-z&#xff1a;压缩传输…...

C++23 新特性解析

引言&#xff1a;C的持续进化 在ISO C标准委员会的不懈努力下&#xff0c;C23作为继C20后的又一重要迭代版本&#xff0c;带来了十余项核心语言特性改进和数十项标准库增强。本文将深入解析最具实用价值的五大新特性&#xff0c;介绍std::expected到模块化革命。 编译器支持 …...

算法05-堆排序

堆排序详解 堆排序&#xff08;Heap Sort&#xff09;是一种基于二叉堆数据结构的排序算法。它的核心思想是利用堆的性质&#xff08;最大堆或最小堆&#xff09;来实现排序。堆排序分为两个主要步骤&#xff1a;建堆和排序。 1. 什么是堆&#xff1f; 堆是一种特殊的完全二叉…...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例&#xff1a;使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例&#xff1a;使用OpenAI GPT-3进…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

AI编程--插件对比分析:CodeRider、GitHub Copilot及其他

AI编程插件对比分析&#xff1a;CodeRider、GitHub Copilot及其他 随着人工智能技术的快速发展&#xff0c;AI编程插件已成为提升开发者生产力的重要工具。CodeRider和GitHub Copilot作为市场上的领先者&#xff0c;分别以其独特的特性和生态系统吸引了大量开发者。本文将从功…...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

【大模型】RankRAG:基于大模型的上下文排序与检索增强生成的统一框架

文章目录 A 论文出处B 背景B.1 背景介绍B.2 问题提出B.3 创新点 C 模型结构C.1 指令微调阶段C.2 排名与生成的总和指令微调阶段C.3 RankRAG推理&#xff1a;检索-重排-生成 D 实验设计E 个人总结 A 论文出处 论文题目&#xff1a;RankRAG&#xff1a;Unifying Context Ranking…...

深度解析:etcd 在 Milvus 向量数据库中的关键作用

目录 &#x1f680; 深度解析&#xff1a;etcd 在 Milvus 向量数据库中的关键作用 &#x1f4a1; 什么是 etcd&#xff1f; &#x1f9e0; Milvus 架构简介 &#x1f4e6; etcd 在 Milvus 中的核心作用 &#x1f527; 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...

今日行情明日机会——20250609

上证指数放量上涨&#xff0c;接近3400点&#xff0c;个股涨多跌少。 深证放量上涨&#xff0c;但有个小上影线&#xff0c;相对上证走势更弱。 2025年6月9日涨停股主要行业方向分析&#xff08;基于最新图片数据&#xff09; 1. 医药&#xff08;11家涨停&#xff09; 代表标…...