Linux 內核參數管理

Linux 內核有很多可以定製化的參數 —— 內核參數 ( kernel parameters ), 斟酌設置內核參數對 系統調優 意義重大。 內核參數 涵蓋內核的方方面面,包括 網絡 ( net )、 文件系統 ( fs )等等。

原文地址:https://linux.fasionchan.com

歡迎關注我們的微信公衆號:小菜學編程 (coding-fan)
歡迎加入我們的技術交流羣:學習Linux (278378501)

本文以 fs.file-max 參數爲例,介紹設置內核參數的幾種方式。

procfs

Linux 內核通過 procfs 僞文件系統暴露 內核參數 的訪問接口, 通過 procfs 接口,用戶可 設置 或者 查看 指定內核參數。 內核參數位於 /proc/sys 目錄下,以 fs.file-max 參數爲例,路徑爲 /proc/sys/fs/file-max

查看參數只需讀取對應文件內容:

$ cat /proc/sys/fs/file-max
94524

同樣地,設置參數只需將值寫入對應文件:

$ echo 1000000 > /proc/sys/fs/file-max

註解:
通過 procfs 調整內核參數可以 立即生效 ,但 重啓失效

sysctl

Linux 內置 sysctl 命令用於管理內核參數,用法非常直觀。

查看給定內核參數值:

$ sysctl fs.file-max
fs.file-max = 94524

如果只需返回參數值,可以指定 -n 參數:

$ sysctl -n fs.file-max
94524

設置給定內核參數:

$ sysctl -w fs.file-max=1000000
fs.file-max = 1000000

註解:
由於 sysctl 命令底層通過 procfs 接口與內核交互,因此效果與 procfs 類似 —— 立即生效,重啓失效

配置文件

procfs 只是訪問內核參數的接口,參數設置 持久化 仍需藉助 配置文件 實現。

用戶可將內核參數設置寫在一個文件裏:

$ cat /some/path/to/sysctl.conf
fs.file-max = 1000000

然後,運行 sysctl 命令加載配置文件以便生效:

$ sysctl -p /some/path/to/sysctl.conf

如果系統重啓,再次運行以上命令即可重新設置內核參數。

系統配置文件

Linux 系統啓動後,默認從以下 系統配置文件 加載內核參數:

/run/sysctl.d/*.conf
/etc/sysctl.d/*.conf
/usr/local/lib/sysctl.d/*.conf
/usr/lib/sysctl.d/*.conf
/lib/sysctl.d/*.conf
/etc/sysctl.conf

因此,更推薦將內核參數設置寫到這些 系統配置文件 中。

系統配置調整後,需要重啓系統或者運行以下 sysctl 命令方能生效:

$ sysctl --system

如果只改動 /etc/sysctl.conf ,則只需以 -p 選項運行 sysctl 命令:

$ sysctl -p

-p 選項未指定文件時, sysctl 命令默認加載 /etc/sysctl.conf

下一步

更多 Linux 技術文章請訪問:學習Linux

訂閱更新,獲取更多學習資料,請關注我們的 微信公衆號

小菜學編程

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章