【经验分享】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 次数,但可能会导致系统在崩溃时丢失更多的数据。

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

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

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

相关文章

C#/.NET/.NET Core技术前沿周刊 | 第 24 期(2025年1.27-1.31)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐…

【STM32】通过HAL库Flash建立FatFS文件系统并配置为USB虚拟U盘MSC

【STM32】通过HAL库Flash建立FatFS文件系统并配置为USB虚拟U盘MSC 在先前 分别介绍了FatFS文件系统和USB虚拟U盘MSC配置 前者通过MCU读写Flash建立文件系统 后者通过MSC连接电脑使其能够被操作 这两者可以合起来 就能够实现同时在MCU、USB中操作Flash的文件系统 【STM32】通过…

用语言模型探索语音风格空间:无需情感标签的情 感TTS

用语言模型探索语音风格空间:无需情感标签的情感TTS 原文:Exploring speech style spaces with language models: Emotional TTS without emotion labels 今天我们要说的是 一种无需情感标签的情感TTS。提出了一个基于FastSpeech2的E-TTS框架&#xff0…

基于Ubuntu2404搭建k8s-1.31集群

k8s 1.31 环境初始化安装Container安装runc安装CNI插件部署k8s集群安装crictl使用kubeadm部署集群节点加入集群部署Calico网络配置dashboard 本实验基于VMware创建的Ubuntu2404虚拟机搭建k8s 1.31版本集群,架构为一主一从,容器运行时使用Container&#…

linux的三剑客和进程处理

Linux三剑客: grep:查找 sed:编辑 awk:分析 grep - 正则表达式 [rootlocalhost ~]# grep ^a hello.txt abc grep - 忽略大小写,还有一些场景需要查询出来对应字符串所在的行号,方便我们快速在文件中定位字…

渗透利器:Burp Suite 联动 XRAY 图形化工具.(主动扫描+被动扫描)

Burp Suite 联动 XRAY 图形化工具.(主动扫描被动扫描) Burp Suite 和 Xray 联合使用,能够将 Burp 的强大流量拦截与修改功能,与 Xray 的高效漏洞检测能力相结合,实现更全面、高效的网络安全测试,同时提升漏…

时间序列分析(三)——白噪声检验

此前篇章: 时间序列分析(一)——基础概念篇 时间序列分析(二)——平稳性检验 一、相关知识点 白噪声的定义:白噪声序列是一种在统计学和信号处理中常见的随机过程,由一系列相互独立、具有相同…

CEF132编译指南 MacOS 篇 - 构建 CEF (六)

1. 引言 经过前面一系列的精心准备,我们已经完成了所有必要的环境配置和源码获取工作。本篇作为 CEF132 编译指南系列的第六篇,将详细介绍如何在 macOS 系统上构建 CEF132。通过配置正确的编译命令和参数,我们将完成 CEF 的构建工作&#xf…

deepseek + kimi 高效生成PPT

1.在deepseek中生成ppt大纲 2.将大纲复制到kimi中生成PPT kimi:https://kimi.moonshot.cn/

CSS 属性选择器详解与实战示例

CSS 属性选择器是 CSS 中非常强大且灵活的一类选择器,它能够根据 HTML 元素的属性和值来进行精准选中。在实际开发过程中,属性选择器不仅可以提高代码的可维护性,而且能够大大优化页面的样式控制。本文将结合菜鸟教程的示例,从基础…

【嵌入式Linux应用开发基础】read函数与write函数

目录 一、read 函数 1.1. 函数原型 1.2. 参数说明 1.3. 返回值 1.4. 示例代码 二、write 函数 2.1. 函数原型 2.2. 参数说明 2.3. 返回值 2.4. 示例代码 三、关键注意事项 3.1 部分读写 3.2 错误处理 3.3 阻塞与非阻塞模式 3.4 数据持久化 3.5 线程安全 四、嵌…

进程状态

目录 1.进程排队 硬件的队列 进程排队 2.进程的三大状态 什么是状态 运行状态 阻塞状态 挂起状态 3.Linux系统中的进程状态 4.僵尸状态 5.孤儿进程 1.进程排队 硬件的队列 计算机是由很多硬件组成的,操作系统为了管理这些硬件,通常需要为这…

项目复盘:提炼项目成功与失败的经验

项目复盘,顾名思义,就是在项目结束后,对整个项目过程进行全面、系统、深入的回顾与总结。它不仅仅是对项目成果的简单评价,更是对项目执行过程中所有细节、决策、挑战与解决方案的深入剖析。通过复盘,我们可以清晰地看…

Rhel Centos环境开关机自动脚本

Rhel Centos环境开关机自动脚本 1. 业务需求2. 解决方法2.1 rc.local2.2 rc.d2.3 systemd2.4 systemd附着的方法2.5 tuned 3. 测试 1. 业务需求 一台较老的服务器上面业务比较简单,提供一个简单的网站,但已经没有业务的运维人员. 想达到的效果: 由于是非标准的apache或者nginx…

网络安全威胁是什么

1.网络安全威胁的概念 网络安全威胁指网络中对存在缺陷的潜在利用,这些缺陷可能导致信息泄露、系统资源耗尽、非法访问、资源被盗、系统或数据被破坏等。 2.网络安全威胁的类型 物理威胁系统漏洞威胁身份鉴别威胁线缆连接威胁有害程序危险 (1&#x…

网络工程师 (30)以太网技术

一、起源与发展 以太网技术起源于20世纪70年代,最初由Xerox公司的帕洛阿尔托研究中心(PARC)开发。最初的以太网采用同轴电缆作为传输介质,数据传输速率为2.94Mbps(后发展为10Mbps),主要用于解决…

Java 循环结构进阶

二重循环 1.一个循环体内又包含另一个完整的循环结构 2.外城循环变量变化一次,内层循环变量要变化一遍。 二重循环-冒泡排序

SSL域名证书怎么申请?

在数字化时代,网络安全已成为企业和个人不可忽视的重要议题。SSL(Secure Sockets Layer,安全套接层)域名证书,作为保障网站数据传输安全的关键工具,其重要性日益凸显。 一、SSL域名证书:网络安…

玩转观察者模式

文章目录 什么是观察者模式解决方案结构适用场景实现方式观察者模式优缺点优点:缺点:什么是观察者模式 观察者模式通俗点解释就是你在观察别人,别人有什么变化,你就做出什么调整。观察者模式是一种行为设计模式,允许你定义一种订阅机制,可在对象事件发生时通知多个“观察…

使用mermaid画流程图

本文介绍使用mermaid画流程图,并给出几个示例。 背景 目前,除有明确格式要求的文档外,笔者一般使用markdown写文档、笔记。当文档有图片时,使用Typora等软件可实时渲染,所见即所得。但如果文档接收方没有安装相关工具…