當Linux系統的OS參數預設配置無法滿足業務需求,您希望對叢集節點進行個人化調整時,您可以在節點池維度自訂節點的OS參數配置,以調優系統效能。自訂OS參數後,系統將按批次變更節點配置。節點池中已有節點將即時生效,新增節點也會使用新配置。
使用說明
本功能僅支援1.28及以上版本的ACK託管叢集、ACK專有叢集(已停止建立)、ACK Edge叢集。如需升級叢集,請參見手動升級叢集。
注意事項
動態修改OS節點配置有可能會造成節點上已存在的Pod發生配置變更,從而觸發Pod重建。請在使用前確保應用的高可用。
不恰當的OS參數調整會改變Linux核心的運作方式,可能導致節點效能惡化或不可用,從而對業務產生影響。請在修改前深入瞭解待修改參數的作用,並在生產環境操作前進行充分測試。
配置節點池OS參數
您可以在節點池維度配置sysctl參數和Transparent Hugepage(THP)參數。這些參數均可通過修改設定檔的方式配置;THP參數和部分sysctl參數還支援通過控制台或OpenAPI配置。
通過控制台或OpenAPI配置
控制台
自訂OS參數後,系統將按批次變更節點配置。配置變更後,節點池中已有節點將即時生效,新增節點也會使用新配置。自訂OS參數生效時會改變已有節點的OS參數配置,可能會對業務產生一定影響。請在業務低峰期操作。
登入Container Service管理主控台,在左側導覽列選擇叢集列表。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇。
在節點池列表的操作列,單擊目標節點池對應的
> OS 配置。仔細閱讀當前頁面上的注意事項,單擊+ 自訂參數選擇需要配置的參數,指定待升級的節點,設定每批次的最大並行數(最大為10),然後單擊提交,按照頁面指引完成操作。
配置每批次的最大並行數後,OS配置將按批次對節點生效。執行過程中,您可以在事件記錄地區查看進度,並控制執行過程(暫停、繼續、取消等)。您可以使用暫停功能對已升級的節點進行驗證。暫停時,正在配置的節點會繼續完成執行,未執行的節點在任務繼續前不會被執行自訂配置。
重要請儘快完成自訂配置任務。處於暫停狀態的任務將在7天后自動取消,相關的事件和日誌資訊也會被清理。
OpenAPI
除控制台外,您也可以通過ModifyNodePoolNodeConfig介面自訂OS參數。
通過設定檔配置
ACK允許將自訂參數寫入至/etc/sysctl.d/99-user-customized.conf,該檔案是節點初始化和重啟時預留的可供自訂配置的檔案。寫入到該設定檔的 sysctl 參數會在節點重啟時優先生效,覆蓋作業系統預設值和通過節點池自訂 sysctl 配置功能寫入的參數值。
調整 sysctl 參數會改變 Linux 核心的運作方式,可能導致節點效能惡化或不可用,影響業務正常運行。請在操作前請充分評估變更風險。
對於節點池中的存量節點,可登入節點修改該自訂參數設定檔,同時手動執行
sysctl -p /etc/sysctl.d/99-user-customized.conf命令使配置生效。對於節點池未來擴容的節點,可將對自訂參數設定檔的寫入指令碼配置到節點池執行個體預自訂資料中,以確保新增節點可預設使用這些自訂參數值。方式如下。
在節點池配置中的執行個體預自訂資料中配置
echo '${sysctl_key}=${sysctl_value}' > /etc/sysctl.d/99-user-customized.conf(${sysctl_key}和${sysctl_value}需替換實際值),將自訂配置寫入/etc/sysctl.d/目錄下的設定檔。操作入口,請參見建立和管理節點池。

sysctl參數列表
下表中的預設值指通過ACK初始化節點池時ACK預設設定的值。
下列參數的取值範圍請參見Linux Kernel sysctl參數文檔。
對於暫未支援通過控制台或 OpenAPI 配置的參數,以及未在表中列出的參數,您可以參見通過設定檔配置進行修改。
欄位名稱 | 說明 | 預設值 | 是否支援控制台或OpenAPI配置 |
fs.aio-max-nr | 非同步I/O操作的最大數量。 | 65536 |
|
fs.file-max | 系統層級能夠開啟的最大檔案控制代碼數。 | 2097152 |
|
fs.inotify.max_user_watches | 單使用者能夠建立的inotify監視的最大數量。 | 524288 |
|
fs.nr_open | 每個進程能夠開啟的檔案描述符數的最大數量。 此值應小於fs.file-max的取值 | 1048576 |
|
kernel.pid_max | 系統可分配的最大PID數量。 | 4194303 |
|
kernel.threads-max | 系統可建立的最大線程數量。 | 504581 |
|
net.core.netdev_max_backlog | 介面接收資料包的速度快於核心的處理速度時,可以在INPUT端排隊的資料包的最大數量。 | 16384 |
|
net.core.optmem_max | 每個網路通訊端允許的最大輔助緩衝區(Ancillary Buffer)大小,以位元組為單位。 | 20480 |
|
net.core.rmem_max | 每個網路通訊端接收緩衝區的最大大小,以位元組為單位。 | 16777216 |
|
net.core.wmem_max | 每個網路通訊端發送緩衝區的最大大小,以位元組為單位。 | 16777216 |
|
net.core.wmem_default | 每個網路通訊端發送緩衝區的預設大小,以位元組為單位。 | 212992 |
|
net.ipv4.tcp_mem | TCP棧可以使用的記憶體量,以記憶體頁(大小通常為4KB)為單位。該參數由三個整數值組成,分別表示低水位、壓力水位和最高水位,必須嚴格按照順序設定。 | 根據系統總記憶體動態計算 |
|
net.ipv4.neigh.default.gc_thresh1 | ARP緩衝中保留的最少條目數。緩衝中的條目數量低於此值時,系統不會執行垃圾收集。 | 系統預設定 |
|
net.ipv4.neigh.default.gc_thresh2 | ARP緩衝中的最大條目數,為軟式節流,即緩衝中的條目數量達到此值時,系統會開始考慮執行垃圾收集,但不會立即強制執行,而會等待5秒延遲。 | 1024 |
|
net.ipv4.neigh.default.gc_thresh3 | ARP緩衝中要保留的最大條目數,為硬限制,即緩衝中的條目數量達到此值時,系統會立即執行垃圾收集。如果緩衝中的條目數量一直超過此值,系統會不斷進行清理。 | 8192 |
|
user.max_user_namespaces | 單個使用者支援建立的 User Namespace 數量上限。 | 0 |
|
kernel.softlockup_panic | 發生軟鎖定時,核心會觸發Panic並重啟系統,以快速恢複系統狀態。 | 1 |
|
kernel.softlockup_all_cpu_backtrace | 檢測到軟鎖定時,捕獲所有CPU的調試資訊,便於問題診斷。 | 1 |
|
vm.max_map_count | 限制單個進程可擁有的最大記憶體映射地區數量,防止記憶體過度使用。 | 262144 |
|
net.core.somaxconn | 設定Socket監聽隊列的最大串連數,控制並發串連處理能力。 | 32768 |
|
net.ipv4.tcp_wmem | 配置TCP串連發送緩衝區的最小值(minimum)、預設值(default)和最大值(maximum)。單位:位元組。 此設定直接影響TCP串連的網路輸送量和記憶體佔用。 | 4096 12582912 16777216 |
|
net.ipv4.tcp_rmem | 配置TCP接收緩衝區的最小值(minimum)、預設值(default)和最大值(maximum)。單位:位元組。 此設定直接影響TCP串連的網路輸送量和記憶體佔用。 | 4096 12582912 16777216 |
|
net.ipv4.tcp_max_syn_backlog | 限制SYN隊列中未完成三向交握的串連請求數量。 | 8096 |
|
net.ipv4.tcp_slow_start_after_idle | 控制TCP串連在長時間空閑後是否重新使用慢啟動演算法。 | 0 |
|
net.ipv4.ip_forward | 啟用IPv4資料包轉寄功能,允許系統作為路由器轉寄資料包。 | 1 |
|
net.bridge.bridge-nf-call-iptables | 使橋接裝置在二層轉寄時應用iptables三層規則,以確保網路安全性原則生效。 | 1 |
|
fs.inotify.max_user_instances | 限制單個使用者可建立的inotify監視器數量,防止資源耗盡。 | 16384 |
|
fs.inotify.max_queued_events | 設定核心隊列中可快取的檔案系統事件數目量。 | 16384 |
|
fs.may_detach_mounts | 允許核心在掛載點仍被進程訪問時將其從命名空間中安全分離,避免整個命名空間被鎖定。 | 1 |
|
THP參數列表
透明大頁THP(Transparent Huge Pages)是Linux核心中的一個通用特性,可以自動將小頁面(通常為4 KB)合并成大頁面(通常為2 MB或更大),以減少記憶體訪問頁表項PTE(Page Table Entries)大小和訪問次數,同時減輕了TLB(Translation Lookaside Buffer)緩衝的壓力,提高記憶體訪問的效率。
以下參數均支援通過控制台或OpenAPI配置。
根據作業系統及其核心版本的不同,下列參數的預設值不同。更多資訊,請參見Linux Kernel THP參數文檔。
欄位名稱 | 說明 | 可取值 |
transparent_enabled | 是否在系統全域開啟THP功能。 |
|
transparent_defrag | 是否開啟透明大頁THP相關的磁碟重組配置。啟用後,如果記憶體中的小頁能夠被合并成一個大頁,可以減少頁表的大小並提高系統的效能。 |
|
khugepaged_defrag |
由於該操作會在記憶體路徑中執行鎖定操作,且 |
|
khugepaged_alloc_sleep_millisecs | 當透明大頁THP分配失敗時, | 請參見khugepaged磁碟重組。 |
khugepaged_scan_sleep_millisecs |
| |
khugepaged_pages_to_scan |
|