全部產品
Search
文件中心

Alibaba Cloud Linux:核心功能與介面概述

更新時間:Nov 16, 2024

如果您對Linux的核心系統有一定的瞭解,並且需要使用Linux核心功能,可以通過本文瞭解Alibaba Cloud Linux已支援的核心功能與介面。

記憶體

文檔連結

支援版本

說明

Memcg Exstat功能

  • Alibaba Cloud Linux 2核心版本4.19.91-18.al7及以上

  • Alibaba Cloud Linux 3所有核心版本

Alibaba Cloud Linux所支援的Memcg Exstat功能,相較於社區版核心額外在cgroup v1介面支援了memory.events、memory.events.local及memory.stat介面,並增加了memcg全域最低水位調整產生的延遲統計和後台非同步回收產生的延遲統計。

Memcg全域最低水位線分級

  • Alibaba Cloud Linux 2核心版本4.19.91-18.al7及以上

  • Alibaba Cloud Linux 3所有核心版本

Alibaba Cloud Linux新增了memcg全域最低水位線分級功能。在global wmark_min的基礎上,將資源消耗型任務的global wmark_min上移,使其提前進入直接記憶體回收。將時延敏感型業務的global wmark_min下移,使其盡量避免直接記憶體回收。這樣當資源消耗型任務瞬間申請大量記憶體的時候,會通過上移的global wmark_min將其短時間抑制,避免時延敏感型業務發生直接記憶體回收。等待全域kswapd回收一定量的記憶體後,再解除資源消耗型任務的短時間抑制。

cgroup v1介面支援memcg QoS功能

  • Alibaba Cloud Linux 2核心版本4.19.91-18.al7及以上

  • Alibaba Cloud Linux 3所有核心版本

記憶體子系統服務品質(memcg QoS)可以用來控制記憶體子系統(memcg)的記憶體使用量量的保證(鎖定)與限制。在社區版核心中只有cgroup v2介面支援該功能,Alibaba Cloud Linux中新增cgroup v1介面支援memcg QoS的相關功能。

Memcg後台非同步回收

  • Alibaba Cloud Linux 2核心版本4.19.81-17.al7及以上

  • Alibaba Cloud Linux 3所有核心版本

Alibaba Cloud Linux增加了memcg粒度的後台非同步回收功能。該功能的實現不同於全域kswapd核心線程的實現,並沒有建立對應的memcg kswapd核心線程,而是採用了workqueue機制來實現。

Memcg OOM優先順序策略功能

  • Alibaba Cloud Linux 2核心版本4.19.91-18.al7及以上

  • Alibaba Cloud Linux 3核心版本5.10.60-9.al8及以上

Alibaba Cloud Linux新增memcg OOM優先順序策略功能。該功能在進行OOM操作時,會首先判定cgroup的優先順序,選擇低優先順序的cgroup進行OOM操作。

THP reclaim功能

  • Alibaba Cloud Linux 2核心版本4.19.91-24.al7及以上

  • Alibaba Cloud Linux 3所有核心版本

Alibaba Cloud Linux增加了THP reclaim功能,用於解決因透明大頁THP帶來的記憶體問題(例如OOM)。

代碼大頁

  • Alibaba Cloud Linux 2核心版本4.19.91-25及以上

  • Alibaba Cloud Linux 3核心版本5.10.112-11及以上

Alibaba Cloud Linux支援代碼大頁功能。該功能主要為大程式碼片段商務服務,您可以通過該功能將應用程式和動態連結程式庫的可執行部分放入到大頁中,降低程式的iTLB miss,提升CPU的2 MB iTLB利用率,從而提升程式效能。

捕獲核心的記憶體汙染問題(KFENCE)

Alibaba Cloud Linux 3核心版本5.10.84-10(x86架構)和5.10.134-16(ARM架構)及以上

Alibaba Cloud Linux 3支援KFENCE功能,它能夠靈活動態開關KFENCE和全量捕獲記憶體汙染問題,從而兼顧線上探測和線下調試。

Page Cache限制功能

Alibaba Cloud Linux 3核心版本5.10.134-14及以上

Alibaba Cloud Linux 3增加了Page Cache(檔案快取)限制功能,用於解決因Page Cache無限制使用帶來的系統穩定性問題,例如業務抖動、預期外的記憶體溢出OOM等。

代碼多副本功能

Alibaba Cloud Linux 3核心版本5.10.112-11及以上

在NUMA架構(尤其是ARM執行個體)中,不同NUMA節點具有各自的本地記憶體,當一個NUMA節點上的程式或進程需要訪問其他NUMA節點的程式碼片段時,就會引入額外的延遲和效能開銷。通過代碼多副本功能,可以將遠程節點的程式碼片段複製到本地節點,避免了跨節點訪問,從而解決NUMA架構中因跨節點訪問帶來的效能延遲問題。

網路

文檔連結

支援版本

說明

共用記憶體通訊(SMC)使用說明

Alibaba Cloud Linux 3核心版本5.10.60-9.al8.x86_64及以上

Alibaba Cloud Linux 3作業系統增加了對SMC-R的支援,基於阿里雲彈性RDMA技術,實現對TCP應用透明無損的替換,為記憶體資料庫、RPC、大檔案傳輸等情境提供相比TCP更好的效能。

TCP-RT功能的配置說明

  • Alibaba Cloud Linux 2核心版本4.19.91-21.al7及以上

  • Alibaba Cloud Linux 3所有核心版本

Alibaba Cloud Linux支援TCP層的服務監控功能(TCP-RT)。TCP-RT本質是一種trace方式。通過在核心TCP協議棧中相應的位置設定埋點,可以在單個串連上只有一個並發請求與響應的情境下識別出請求與響應,進而擷取請求在協議棧中接收的時間及服務進程處理過程中的耗時等資料資訊。此外,TCP-RT還支援在核心系統中做統計分析,定期輸出指定串連的統計資訊。

修改TCP TIME-WAIT逾時時間

  • Alibaba Cloud Linux 2核心版本4.19.43-13.al7及以上

  • Alibaba Cloud Linux 3所有核心版本

在Linux的核心中,TCP/IP協議的TIME-WAIT狀態持續60秒且無法修改。但在某些情境下,例如TCP負載過高時,適當調小該值有助於提升網路效能。因此Alibaba Cloud Linux新增核心介面,用於修改TCP TIME-WAIT逾時時間。

關閉IPVS的estimation功能解決網路抖動問題

  • Alibaba Cloud Linux 2核心版本4.19.91-22及以上

  • Alibaba Cloud Linux 3核心版本5.10.134-14及以上

使用Linux的IPVS模組時,IPVS會預設啟用其estimation功能,當伺服器規格較大且Service數量多時(例如,容器Kubernetes大規模叢集情境),該功能可能導致服務端的網路請求出現幾十到上百毫秒的延時或引起網路抖動。Alibaba Cloud Linux鏡像提供了關閉IPVS的estimation功能的能力,若您不依賴estimation統計資料包數、串連數等資訊,建議關閉IPVS的estimation功能,以消除由於統計帶來的額外開銷和抖動問題。

vtoa使用說明

Alibaba Cloud Linux 3核心5.10.134-15及以上版本

在DDoS高防等FullNAT情境下,用戶端地址會被轉換成FullNAT節點的地址。安裝了vtoa的後端伺服器可以在Alibaba Cloud Linux 3(核心5.10.134-15及以上版本)上基於TOA調用getsockoptgetpeername,擷取真實的用戶端地址。支援IPv4和IPv6。

儲存

文檔連結

支援版本

說明

啟用cgroup writeback功能

  • Alibaba Cloud Linux 2核心版本4.19.36-12.al7及以上

  • Alibaba Cloud Linux 3所有核心版本

Alibaba Cloud Linux對核心介面cgroup v1增加了控制群組回寫(cgroup writeback)功能。該功能使您在使用核心介面cgroup v1時,可以對緩衝非同步I/O (Buffered I/O) 進行限速。

配置blk-iocost權重限速

  • Alibaba Cloud Linux 2核心版本4.19.81-17.al7及以上

  • Alibaba Cloud Linux 3所有核心版本

Alibaba Cloud Linux支援基於成本模型(cost model)的權重限速功能,即blk-iocost功能。該功能是對核心中IO子系統(blkcg)基於權重的磁碟限速功能的進一步完善。

Block IO限流增強監控介面

  • Alibaba Cloud Linux 2核心版本4.19.81-17.al7及以上

  • Alibaba Cloud Linux 3所有核心版本

為了更方便地監控Linux block IO限流,Alibaba Cloud Linux增加相關介面,用於增強block IO限流的監控統計能力。

JBD2最佳化介面

  • Alibaba Cloud Linux 2核心版本4.19.81-17.al7及以上

  • Alibaba Cloud Linux 3所有核心版本

JBD2作為ext4檔案系統的核心線程,在使用過程中常會遇到影子狀態(BH_Shadow),影響系統效能。為解決使用JBD2過程中出現的異常,Alibaba Cloud Linux對JBD2進行了最佳化。

跨目錄配額建立永久連結

  • Alibaba Cloud Linux 2核心版本4.19.91-18.al7及以上

  • Alibaba Cloud Linux 3所有核心版本

預設情況下,ext4檔案系統中存在約束,不允許跨目錄配額建立永久連結。但在實際中,某些特定情境有建立永久連結的需求,因此Alibaba Cloud Linux提供定製介面,該介面能夠繞過ext4檔案系統中的約束,實現跨目錄配額建立永久連結。

追蹤IO時延

  • Alibaba Cloud Linux 2所有核心版本

  • Alibaba Cloud Linux 3所有核心版本

Alibaba Cloud Linux最佳化了IO時延分析工具iostat的未經處理資料來源/proc/diskstats介面,增加了對裝置側的讀、寫及特殊IO(discard)等耗時的統計,此外還提供了一個方便追蹤IO時延的工具bcc。

檢測檔案系統和塊層的IO hang

  • Alibaba Cloud Linux 2所有核心版本

  • Alibaba Cloud Linux 3所有核心版本

IO hang是指在系統運行過程中,因某些IO耗時過長而引起的系統不穩定甚至宕機。為了準確檢測出IO hang,Alibaba Cloud Linux擴充核心資料結構,增加了在較小的系統開銷下,快速定位並檢測IO hang的功能。

如何設定檔系統的context readahead預讀以提升檔案訪問效能

  • Alibaba Cloud Linux 3

  • Alibaba Cloud Linux 2(核心4.19.91-18及以上版本)

Linux系統採用預讀(readahead)技術以加速檔案快取訪問(buffer IO)模式。同時,系統還支援上下文預讀(context readahead),旨在最佳化多個交錯順序資料流情境下的檔案訪問效能。然而,在某些隨機訪問情境中,上下文預讀演算法可能出現誤判,導致讀取過多實際不需要的頁面。在這類情境下,關閉上下文預讀演算法能顯著提升應用效能。

配置tcm_loop裝置參數

Alibaba Cloud Linux 3核心5.10.134-17及以上版本

TCM是Linux IO Target即LIO的別稱,是核心態的iSCSI target。TCMU(TCM in Userspace)是LIO的使用者態實現,允許使用者程式方便地對接各種使用者態後端實現。基於TCMU架構和LIO loopback即tcm_loop模組,可以很方便地實現使用者態iSCSI target。

監控

文檔連結

支援版本

說明

核心統一異常架構(UKFEF)

Alibaba Cloud Linux 3核心版本5.10.60-9.al8及以上

Alibaba Cloud Linux 3在核心版本5.10.60-9.al8增加了UKFEF(Unified Kernel Fault Event Framework),用於統計可能導致風險的系統例外狀況事件,並統一格式輸出附隨報告。

在cgroup v1介面開啟PSI功能

  • Alibaba Cloud Linux 2核心版本4.19.81-17.al7及以上

  • Alibaba Cloud Linux 3所有核心版本

Alibaba Cloud Linux為cgroup v1介面提供了PSI功能。PSI(Pressure Stall Information)是一個可以監控CPU、記憶體及IO效能異常的核心功能。

調度

文檔連結

支援版本

說明

在cgroup v1介面開啟CPU Burst功能

  • Alibaba Cloud Linux 2核心版本4.19.91-22.al7及以上

  • Alibaba Cloud Linux 3所有核心版本

Alibaba Cloud Linux為cgroup v1介面提供了CPU Burst功能。CPU Burst功能允許容器被CPU限流時,突發使用CPU資源,進而提升容器效能、降低系統的延遲指標。

Group Identity功能說明

  • Alibaba Cloud Linux 2核心版本4.19.91-24.al7及以上

  • Alibaba Cloud Linux 3核心版本5.10.46-7.al8及以上

Alibaba Cloud Linux支援Group Identity功能,您可以通過該功能為每一個CPU cgroup設定不同的身份標識,以區分不同CPU cgroup中進程任務的優先順序。

相容性

文檔連結

支援版本

說明

/proc/meminfo檔案中的統計資訊變更說明

  • Alibaba Cloud Linux 2核心版本4.19.91-22.al7及以上

  • Alibaba Cloud Linux 3所有核心版本

Alibaba Cloud Linux作業系統在核心4.19.91-22.al7及其之後的版本中,/proc/meminfo檔案內的匿名頁狀態統計資訊Active(anon)Inactive(anon)發生了變化。如果您的應用程式正在使用該統計資訊,統計資訊的變化會導致變更前後查詢到的資料不一致。

其他

文檔連結

支援版本

說明

增強容器資源可見度

  • Alibaba Cloud Linux 2核心版本4.19.91-22.2.al7及以上

  • Alibaba Cloud Linux 3核心版本5.10.46-7.al8以及上

Alibaba Cloud Linux在核心層面提供了容器資源檢視功能的相關介面,實現對容器資源的可見度增強。

Alibaba Cloud Linux的user namespace安全強化

  • Alibaba Cloud Linux 3所有核心版本

  • Alibaba Cloud Linux 2所有核心版本

Linux支援使用者命名空間(user namespace)特性,以實現進程在不同使用者命名空間中擁有不同的使用者ID(user id)與組ID(group id),進而實現許可權隔離。然而,開啟使用者命名空間會增加系統面臨許可權提升攻擊的風險(攻擊者可能通過系統漏洞實現許可權提升,從而獲得特權許可權,逃脫系統的許可權控制)。