當Linux系統的OS參數預設配置無法滿足業務需求,您希望對叢集節點進行個人化調整時,您可以在節點池維度自訂節點的OS參數配置,以調優系統效能。自訂OS參數後,系統將按批次變更節點配置。節點池中已有節點將即時生效,新增節點也會使用新配置。
使用限制
僅1.28及以上版本的ACK叢集支援自訂節點池OS參數。具體操作,請參見建立ACK託管叢集、建立ACK專有叢集、建立ACK Edge叢集。如需升級叢集,請參見手動升級叢集。
注意事項
動態修改OS節點配置有可能會造成節點上已存在的Pod發生配置變更,從而觸發Pod重建。請在使用前確保應用的高可用。
不恰當的OS參數調整會改變Linux核心的運作方式,可能導致節點效能惡化或不可用,從而對業務產生影響。請在修改前深入瞭解待修改參數的作用,並在生產環境操作前進行充分測試。
請勿自行修改控制台不支援自訂的OS參數,避免因配置錯誤導致的節點不可用或手動修改內容被覆蓋。例如,通過黑屏操作手動修改/etc/sysctl.d/99-k8s.conf中的內容,會導致叢集執行營運操作(例如叢集升級、自訂參數修改等)時覆蓋已修改的配置。
支援通過控制台自訂的sysctl參數
欄位名稱 | 說明 | 預設值 | 推薦取值範圍 |
fs.aio-max-nr | 非同步I/O操作的最大數量。 | 65536 | [65536, 6553500] |
fs.file-max | 系統層級能夠開啟的最大檔案控制代碼數。 | 2097152 | [8192, 12000500] |
fs.inotify.max_user_watches | 單使用者能夠建立的inotify監視的最大數量。 | 524288 | [524288, 2097152] |
fs.nr_open | 每個進程能夠開啟的檔案描述符數的最大數量。 | 1048576 | [1000000, 20000500] (此值應小於fs.file-max的取值) |
kernel.pid_max | 系統可分配的最大PID數量。 | 4194303 | 大於1048575 |
kernel.threads-max | 系統可建立的最大線程數量。 | 504581 | 大於500000 |
net.core.netdev_max_backlog | 介面接收資料包的速度快於核心的處理速度時,可以在INPUT端排隊的資料包的最大數量。 | 16384 | [1000, 3240000] |
net.core.optmem_max | 每個網路通訊端允許的最大輔助緩衝區(Ancillary Buffer)大小,以位元組為單位。 | 20480 | [20480, 4194304] |
net.core.rmem_max | 每個網路通訊端接收緩衝區的最大大小,以位元組為單位。 | 16777216 | [212992, 134217728] |
net.core.wmem_max | 每個網路通訊端發送緩衝區的最大大小,以位元組為單位。 | 16777216 | [212992, 134217728] |
net.core.wmem_default | 每個網路通訊端發送緩衝區的預設大小,以位元組為單位。 | 212992 | 大於等於212992 |
net.ipv4.tcp_mem | TCP棧可以使用的記憶體量,以記憶體頁(大小通常為4KB)為單位。該參數由三個整數值組成,分別表示低水位、壓力水位和最高水位,必須嚴格按照順序設定。 | 根據系統總記憶體動態計算 | 三個參數逐漸增大,且最小值為80000以上 |
net.ipv4.neigh.default.gc_thresh1 | ARP緩衝中保留的最少條目數。緩衝中的條目數量低於此值時,系統不會執行垃圾收集。 | 128 | [128, 80000] |
net.ipv4.neigh.default.gc_thresh2 | ARP緩衝中的最大條目數,為軟式節流,即緩衝中的條目數量達到此值時,系統會開始考慮執行垃圾收集,但不會立即強制執行,而會等待5秒延遲。 | 1024 | [512, 90000] |
net.ipv4.neigh.default.gc_thresh3 | ARP緩衝中要保留的最大條目數,為硬限制,即緩衝中的條目數量達到此值時,系統會立即執行垃圾收集。如果緩衝中的條目數量一直超過此值,系統會不斷進行清理。 | 8192 | [1024, 100000] |
支援通過控制台自訂的Transparent Hugepage參數
透明大頁THP(Transparent Huge Pages)是Linux核心中的一個通用特性,可以自動將小頁面(通常為4 KB)合并成大頁面(通常為2 MB或更大),以減少記憶體訪問頁表項PTE(Page Table Entries)大小和訪問次數,同時減輕了TLB(Translation Lookaside Buffer)緩衝的壓力,提高記憶體訪問的效率。
目前處於灰階發布中。如需使用,請提交工單申請。
下表中的預設值為在Alibaba Cloud Linux 2的4.19.91-18及之後的核心版本中系統預設值。
欄位名稱 | 說明 | 預設值 | 可取值 |
transparent_enabled | 是否在系統全域開啟 THP功能。 | always |
|
transparent_defrag | 是否開啟透明大頁THP相關的磁碟重組配置。啟用後,如果記憶體中的小頁能夠被合并成一個大頁,可以減少頁表的大小並提高系統的效能。 | madvise |
|
khugepaged_defrag |
由於該操作會在記憶體路徑中執行鎖定操作,且 | 1 |
|
khugepaged_alloc_sleep_millisecs | 當透明大頁THP分配失敗時, | 60000,即預設等待60秒 | |
khugepaged_scan_sleep_millisecs |
| 10000,即預設每10秒喚醒一次 | |
khugepaged_pages_to_scan |
| 4096 |
通過控制台自訂節點池OS參數
自訂OS參數後,系統將按批次變更節點配置。配置變更後,節點池中已有節點將即時生效,新增節點也會使用新配置。自訂OS參數生效時會改變已有節點的OS參數配置,可能會對業務產生一定影響。請在業務低峰期操作。
登入Container Service管理主控台,在左側導覽列選擇叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇 。
在節點池列表的操作列,單擊目標節點池對應的更多>OS 配置。
仔細閱讀當前頁面上的注意事項,單擊+ 自訂參數選擇需要配置的參數,設定每批次的最大並行數(最大為10),然後單擊提交,按照頁面指引完成操作。
配置每批次的最大並行數後,OS配置將按批次對節點生效。執行過程中,您可以在事件列表地區查看進度,並控制執行過程(暫停、繼續、取消等)。您可以使用暫停功能對已升級的節點進行驗證。暫停時,正在配置的節點會繼續完成執行;未執行的節點在任務繼續前不會被執行自訂配置。
重要請儘快完成自訂配置任務。處於暫停狀態的任務將在7天后自動取消,相關的事件和日誌資訊也會被清理。