Linux 內核參數

文章目錄

    • 什么是內核參數
    • 參數種類
    • 配置方式
      • 1. 編譯內核時配置
      • 2. 內核啟動時配置
      • 3. 內核運行時配置
      • 4. 加載內核模塊時配置
      • 總結

什么是內核參數

內核參數是 Linux 系統中用于控制和調整內核行為的可配置選項。這些參數影響系統的性能、安全性和各種功能特性。

參數種類

大部分參數和某個子系統相關,需要在編譯或加載時加入子系統,而且相關硬件需要存在。

在這里插入圖片描述

目錄主要作用典型參數示例
abi/應用程序二進制接口相關較少直接調整,通常由系統自動管理
debug/內核調試參數kernel.debug.exception-trace(控制是否記錄異常跟蹤信息)
dev/設備驅動相關dev.cdrom.autoeject(CDROM自動彈出控制,1=啟用,0=禁用)
fs/文件系統參數fs.file-max(系統最大文件句柄數)
kernel/通用內核行為kernel.shmmax(共享內存段最大尺寸,單位字節)
net/網絡協議棧參數net.ipv4.tcp_fin_timeout(TCP連接FIN_WAIT狀態超時時間)
sunrpc/NFS/RPC 相關sunrpc.rpc_timeout(指定 RPC 請求的超時時間)
user/用戶空間限制user.max_user_namespaces(允許創建的最大用戶命名空間數量)
vm/虛擬內存管理vm.dirty_ratio(內存臟頁占比閾值,超過則同步寫入磁盤)

配置方式

有下面幾種辦法向內核傳遞參數以控制其行為:

  1. 編譯內核時:修改內核 .config 文件,或直接修改內核源碼。
  2. 內核啟動時:通過命令行參數。
  3. 內核運行時:通過 /proc/sys/ 和 /sys/ 中的文件。
  4. 加載內核模塊時:通過 /etc/modprobe.d/ 中的 .conf 文件,或通過 insmod/modprobe 傳遞參數。

下面針對不同的內核參數配置方式,分別給出示例說明:

1. 編譯內核時配置

在編譯內核期間,可以借助內核配置文件或者直接修改內核源代碼來設置參數。

示例:設置 CONFIG_RCU_CPU_STALL_TIMEOUT 參數,該參數是內核的 RCU(Read-Copy Update)機制的超時參數,單位為秒。

操作步驟:

  • 進入內核源碼目錄,
  • 打開配置界面,可使用 make menuconfig 命令。
  • 找到選項對應路徑:Kernel hacking >
    RCU Debugging > (21) RCU CPU stall timeout in seconds
  • 對參數進行設置
  • 保存配置后,執行編譯和安裝操作,即 make && make install

特點:這種配置方式會使參數成為內核的固定設置,一旦內核編譯完成,參數就無法再改變,除非重新編譯內核。

2. 內核啟動時配置

在內核啟動階段,可以通過修改引導加載程序(如 GRUB)的命令行參數來傳遞參數。

示例:調整 swappiness 參數,該參數用于控制內存與交換空間的使用傾向。
操作步驟:

  • 打開 GRUB 配置文件,路徑為:/etc/default/grub
  • 找到 GRUB_CMDLINE_LINUX 行,并添加參數,示例如下:GRUB_CMDLINE_LINUX=“swappiness=10”
  • 更新 GRUB 配置,執行命令:update-grub
  • 重啟系統使配置生效

特點:此方式設置的參數會在每次系統啟動時生效,不過若要修改參數,就需要重新編輯 GRUB 配置文件。

3. 內核運行時配置

在內核運行過程中,可以通過 /proc/sys/ 或 /sys/ 目錄下的文件來動態調整參數。

示例:修改 net.ipv4.tcp_tw_recycle 參數,該參數用于控制 TCP TIME_WAIT 狀態的處理。
臨時修改(重啟后失效):

  • 直接執行命令:echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

永久修改:

  • 編輯 sysctl 配置文件,路徑為:/etc/sysctl.conf
  • 添加或修改相應行:net.ipv4.tcp_tw_recycle = 1
  • 使配置立即生效,執行命令:sysctl -p

特點:這種配置方式靈活方便,無需重啟系統即可生效,但臨時修改的參數在系統重啟后會恢復默認值。

4. 加載內核模塊時配置

在加載內核模塊時,可以通過配置文件或命令行參數來傳遞參數。

示例:設置 loop 模塊的最大設備數。

通過配置文件設置:

  • 創建或編輯模塊配置文件,路徑為:/etc/modprobe.d/loop.conf
  • 添加內容:options loop max_loop=64
  • 重新加載模塊,執行命令:modprobe -r loop && modprobe loop

通過命令行設置:

  • 執行命令:modprobe loop max_loop=64

特點:這種配置方式只對特定的內核模塊有效,并且需要確保模塊加載時參數能夠正確傳遞。

總結

配置方式生效時間持久性適用場景
編譯內核內核編譯時永久(除非重新編譯)需要深度定制內核功能的場景
啟動參數系統啟動時永久(需修改 GRUB 配置)系統啟動相關參數的設置
/proc/sys即時生效臨時(可通過 sysctl.conf 永久化)需要動態調整參數的場景
模塊配置模塊加載時永久(通過配置文件)特定內核模塊參數的設置

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/905197.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/905197.shtml
英文地址,請注明出處:http://en.pswp.cn/news/905197.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

pythonocc 拉伸特征

micromamba install -c conda-forge pythonocc-core opencascade.js安裝不起來,ai用pythonocc練個手 拉伸線框 線成面 from OCC.Core.gp import gp_Pnt, gp_Dir, gp_Vec from OCC.Core.BRepBuilderAPI import BRepBuilderAPI_MakeEdge, BRepBuilderAPI_MakeWire f…

Vue.js 頁面切換空白與刷新 404 問題深度解析

在使用 Vue.js 開發單頁應用 (SPA) 的過程中,開發者經常會遇到兩個常見問題:頁面切換時出現短暫的空白屏幕,以及刷新頁面時返回 404 錯誤。這兩個問題不僅影響用戶體驗,還可能阻礙項目的正常上線。本文將深入探討這兩個問題的成因…

Go 語言 slice(切片) 的使用

序言 在許多開發語言中,動態數組是必不可少的一個組成部分。在實際的開發中很少會使用到數組,因為對于數組的大小大多數情況下我們是不能事先就確定好的,所以他不夠靈活。動態數組通過提供自動擴容的機制,極大地提升了開發效率。這…

Qt5.14.2 鏈接 MySQL 8.4 遇到的問題

問題一: "Plugin caching_sha2_password could not be loaded: 找不到指定的模塊。 Library path is caching_sha2_password.dll QMYSQL: Unable to connect" 解決方法: alter user root@localhost identified with mysql_native_password by root;問題二: ERR…

Docker 部署 - Crawl4AI 文檔 (v0.5.x)

Docker 部署 - Crawl4AI 文檔 (v0.5.x) 快速入門 🚀 拉取并運行基礎版本: # 不帶安全性的基本運行 docker pull unclecode/crawl4ai:basic docker run -p 11235:11235 unclecode/crawl4ai:basic# 帶有 API 安全性啟用的運行 docker run -p 11235:1123…

開發工具分享: Web前端編碼常用的在線編譯器

1.OneCompiler 工具網址:https://onecompiler.com/ OneCompiler支持60多種編程語言,在全球有超過1280萬用戶,讓開發者可以輕易實現代碼的編寫、運行和共享。 OneCompiler的線上調試功能完全免費,對編程語言的覆蓋也很全&#x…

Docker-配置私有倉庫(Harbor)

配置私有倉庫(Harbor) 一、環境準備安裝 Docker 三、安裝docker-compose四、準備Harbor五、配置證書六、部署配置Harbor七、配置啟動服務八、定制本地倉庫九、測試本地倉庫 Harbor(港灣),是一個用于 存儲 和 分發 Docker 鏡像的企業級 Regi…

關于高并發GIS數據處理的一點經驗分享

1、背景介紹 筆者過去幾年在參與某個大型央企的項目開發過程中,遇到了十分棘手的難題。其與我們平常接觸的項目性質完全不同。在一般的項目中,客戶一般只要求我們能夠通過桌面軟件對原始數據進行加工處理,將各類地理信息數據加工處理成地圖/場景和工作空間,然后再將工作空…

使用 DMM 測試 TDR

TDR(時域反射計)可能是實驗室中上升時間最快的儀器,但您可以使用直流歐姆表測試其準確性。 TDR 測量什么 在所有高速通道中,反射都很糟糕。我們嘗試設計一個通道來減少反射,這些反射都會導致符號間干擾 (…

可視化圖解算法37:序列化二叉樹-II

1. 題目 描述 請實現兩個函數,分別用來序列化和反序列化二叉樹,不對序列化之后的字符串進行約束,但要求能夠根據序列化之后的字符串重新構造出一棵與原二叉樹相同的樹。 二叉樹的序列化(Serialize)是指:把一棵二叉樹按照某種遍…

【Python】Python常用數據類型詳解

Python常用數據類型詳解:增刪改查全掌握 Python作為一門簡潔高效的編程語言,其豐富的數據類型是構建程序的基礎。本文將詳細介紹數字、字符串、列表、元組、字典、集合這六種核心數據類型的特點及增刪改查操作,并附代碼示例,助你全面掌握數據操作技巧。 一、數字(Number)…

模板引用、組件基礎

#### 組件基礎 1. 定義和使用簡單組件 - ![alt text](./img/image-2.png) vue <!-- 在App.vue里 --> <script setup>import HelloWorld from ./components/HelloWorld.vue </script> <template><HelloWorld></HelloWorld></temp…

深入探索 RKNN 模型轉換之旅

在人工智能蓬勃發展的當下&#xff0c;邊緣計算領域的應用愈發廣泛。瑞芯微的 RKNN 技術在這一領域大放異彩&#xff0c;它能讓深度學習模型在其芯片平臺上高效運行。而在整個應用流程中&#xff0c;模型轉換是極為關鍵的一環&#xff0c;今天就讓我們一同深入這個神奇的 RKNN …

iframe嵌套網站的安全機制實現

背景&#xff1a; 公司內部有一套系統A部署在內網&#xff0c;這套系統嵌套了B網站&#xff08;也是內網&#xff09;&#xff0c;只有內網才能訪問。現在需要將這個A系統暴露到公網。B系統的安全策略比較低&#xff0c;想快速上線并提高B系統的安全性。 通過 Nginx 代理層 設置…

青少年編程與數學 02-019 Rust 編程基礎 08課題、字面量、運算符和表達式

青少年編程與數學 02-019 Rust 編程基礎 08課題、字面量、運算符和表達式 一、字面量1. 字面量的分類1.1 整數字面量1.2 浮點數字面量1.3 字符字面量1.4 字符串字面量1.5 布爾字面量1.6 字節數組字面量 2. 字面量的類型推斷3. 字面量的用途4. 字面量的限制字面量總結 二、運算符…

危化品安全員職業發展方向的優劣對比

以下是危化品安全員不同職業發展方向的優劣對比&#xff1a; 縱向晉升 優勢 職業路徑清晰&#xff1a;從危化品安全員逐步晉升為安全主管、安全經理、安全總監等管理職位&#xff0c;層級明確&#xff0c;有較為清晰的上升通道。管理能力提升&#xff1a;隨著職位上升&#x…

談AI/OT 的融合

過去的十幾年間&#xff0c;工業界討論最多的話題之一就是IT/OT 融合&#xff0c;現在&#xff0c;我們不僅要實現IT/OT 的融合&#xff0c;更要面向AI/OT 的融合。看起來不太靠譜&#xff0c;卻留給我們無限的想象空間。OT 領域的專家們不要再當“九斤老太”&#xff0c;指責這…

計算機網絡核心技術解析:從基礎架構到應用實踐

計算機網絡作為現代信息社會的基石&#xff0c;承載著全球數據交換與資源共享的核心功能。本文將從網絡基礎架構、核心協議、分層模型到實際應用場景&#xff0c;全面解析計算機網絡的核心技術&#xff0c;并結合行業最新趨勢&#xff0c;為讀者構建系統的知識體系。 一、計算機…

大規模數據并行排序策略(Parallel Sample Sort)

大規模數據并行排序策略 對于上億條大型記錄的并行排序&#xff0c;基于MPI的多節點環境&#xff0c;可以采用以下策略來充分利用內存和網絡資源&#xff1a; 推薦算法&#xff1a;樣本排序(Sample Sort) 樣本排序是大規模并行排序的高效算法&#xff0c;特別適合MPI環境&am…

o.redisson.client.handler.CommandsQueue : Exception occured. Channel

1&#xff0c; 版本 <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>2.15.2</version> </dependency>2&#xff0c;問題 2025-05-12 10:46:47.436 ERROR 27780 --- [sson-netty-5-…