如何持久和非持久地更改核心執行時引數?
簡介
核心執行時引數是控制系統上Linux核心行為的設定。這些引數可以影響各種系統功能,例如記憶體分配、網路效能和CPU排程。
瞭解如何更改這些引數對於最佳化系統性能和解決可能出現的問題至關重要。更改核心執行時引數主要有兩種方法:非永續性更改和永續性更改。
非永續性更改會暫時修改核心的行為,僅持續到您重新啟動系統為止。另一方面,永續性更改會永久修改核心的行為,並在重新啟動後仍然存在。
以非持久方式更改核心執行時引數
非永續性更改的定義及其工作方式
對核心執行時引數進行非永續性更改是暫時的更改,這意味著它們在系統重新啟動後不會保留。可以使用sysctl或echo等命令列工具進行這些更改。系統重新啟動後,對核心執行時引數所做的更改將丟失,系統將恢復為其預設設定。
非永續性更改的一個主要優點是,它們允許快速測試不同的配置,而無需對系統進行任何永久性更改。這種靈活性也有其缺點,因為它需要管理員不斷關注,以確保在每次重新啟動或服務重新啟動後都重新應用任何所需的非永續性更改。
使用命令列工具進行非永續性更改的分步指南
以下步驟詳細說明了如何使用命令列工具以非持久方式更改核心執行時引數:
確定要修改哪些核心引數。
開啟終端並輸入“sysctl -a”或“cat /proc/sys/[引數名稱]”(不含引號)以檢視所有sysctl變數或單個引數的當前值。
sysctl –a
或者
cat /proc/sys/[parameter_name]
確定要更改的值,然後使用“echo [值] > /proc/sys/[引數名稱]”(不含引號)或“sysctl -w [引數名稱]=[值]”(不含引號),然後使用“sysctl -p”(應用所有掛起的設定)。
echo [value] > /proc/sys/[parameter_name]
或者
sysctl -w [parameter_name]=[value] sysctl -p
驗證新值是否生效:再次使用“cat /proc/sys/[引數名稱]”或嘗試使用新設定執行應用程式。
可以以非持久方式更改的常用核心執行時引數示例
以下是可以使用上述過程以非持久方式更改的核心執行時引數的一些示例:
net.ipv4.tcp_syncookies - 設定為0以停用SYN Cookie,SYN Cookie用於防止某些型別的拒絕服務攻擊。
vm.swappiness - 控制核心更傾向於交換非活動程序還是回收記憶體中基於檔案的頁面的程度。
net.ipv4.ip_forward - 設定為1以啟用充當路由器的節點上的IP轉發。
kernel.sem - 調整System V IPC訊號量、訊息佇列和共享記憶體段的最大值。
fs.file-max - 設定系統範圍內可用的檔案控制代碼的最大數量。
透過以非持久方式更改這些引數,管理員可以在永久提交任何更改之前試驗不同的配置並確定最適合其系統的配置。
以持久方式更改核心執行時引數
永續性更改的定義及其與非永續性更改的不同之處
對核心執行時引數進行永續性更改意味著即使在系統重新啟動後,更改也會保留。這些更改儲存在配置檔案中,以便在系統初始化時自動載入。這與非永續性更改不同,非永續性更改只會暫時修改核心設定,並在系統重新啟動時恢復為其原始值。
永續性更改有助於對核心設定進行長期修改,這些修改需要在多次重新啟動之間保持一致。此外,可以透過配置檔案進行永續性更改,這對於在多個系統上自動化配置非常有用。
使用配置檔案進行永續性更改的分步指南
要使用配置檔案進行永續性更改,您需要修改要更改的引數的相應配置檔案。通常,這些配置檔案位於/etc/sysctl.d/目錄中。以下是操作步驟:
開啟終端視窗,透過鍵入“sudo su”切換到root使用者。
透過鍵入“cd /etc/sysctl.d/”導航到/etc/sysctl.d/目錄。
使用您喜歡的文字編輯器(例如nano)在這個目錄中建立一個以“.conf”結尾的新檔案,鍵入“nano filename.conf”。
將所需的核心執行時引數及其對應值新增到此檔案中(每行一個引數-值對)。
例如:
net.ipv4.tcp_fin_timeout=30 vm.swappiness=10
按CTRL+X,然後按Y,再按ENTER儲存並關閉檔案。
使用命令“sysctl --system”重新整理sysctl設定。執行這些步驟後,您的持久核心執行時引數更改將儲存到配置檔案中,並在重新啟動後仍然存在。
可以以持久方式更改的常用核心執行時引數示例
許多核心執行時引數可以透過配置檔案以持久方式更改。以下是一些常見的示例:
net.ipv4.tcp_fin_timeout - 此引數控制連線在關閉後處於TIME_WAIT狀態的時間。預設值通常為60秒,但可以將其減少以加快連線關閉速度。
vm.swappiness - 此引數控制核心在RAM和交換空間之間交換記憶體頁面的積極程度。較低的值(例如10)會導致較少的交換和更多地使用物理記憶體,而較高的值(例如60)會導致更多地交換和更少地使用物理記憶體。
fs.file-max - 此引數設定系統在任何給定時間可以存在的開啟檔案的最大數量。對於檔案I/O需求高的系統,增加此值可能會有所幫助。
總的來說,使用配置檔案以持久方式更改核心執行時引數對於希望對其系統行為進行長期修改的系統管理員來說是一項重要的技能。透過遵循這些步驟,您可以確保您的配置在每次系統啟動時自動載入,從而減少手動干預並節省時間。
更改核心執行時引數的最佳實踐
更改核心執行時引數可能會對系統性能和穩定性產生重大影響。為了避免出現問題並確保更改有效,在進行更改時務必遵循最佳實踐。本節將介紹一些關鍵的最佳實踐。
在實施更改之前測試更改的重要性
在實施任何更改之前,務必在非生產環境中測試這些更改。這樣可以識別在生產系統上推出更改之前出現的任何問題或衝突。測試應包括驗證更改後系統是否按預期執行。
關於何時使用非永續性更改與永續性更改的討論
選擇是否進行非永續性或永續性核心執行時引數更改很大程度上取決於更改的預期範圍及其潛在影響。非永續性更改非常適合不需要在系統重新啟動之間維護的臨時修改,而永續性更改更適合應在重新啟動後仍然存在的長期修改。
結論
更改核心執行時引數可以成為最佳化系統性能和功能的強大工具。通過了解非永續性更改和永續性更改之間的區別,使用者可以根據其特定需求做出明智的決策,選擇哪種方法。
在本文中,我們介紹了使用命令列工具和配置檔案進行非永續性和永續性更改的分步過程。我們還討論了更改核心執行時引數的最佳實踐,並提供了有關解決可能出現的問題的技巧。