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
訂閱更新,獲取更多學習資料,請關注我們的 微信公衆號 :