在資料密集型的工作負載中,如需最佳化DRAM、持久記憶體和各種資料處理進程中常見的資料流拷貝和轉換,推薦您使用英特爾®DSA(Data Streaming Accelerator)資料流加速器。DSA是一種高效能的資料拷貝和資料轉換加速器,已整合在八代神龍SPR機型的處理器中。在ACK叢集中安裝ack-koordinator組件後,叢集將自動開啟DSA加速功能。
DSA加速功能的優勢
Intel® DSA硬體已整合在八代Intel機型處理器中,並基於Alibaba Cloud Linux 3增加了相關驅動。在ACK叢集中使用此機型作為Worker節點,並安裝ack-koordinator組件後,容器將自適應開啟DSA加速功能,將相關記憶體操作從CPU卸載至DSA硬體,實現資料拷貝和轉換的加速,並有效緩解過程中的CPU抖動。DSA加速功能更多優勢如下。
提升節點上資料密集型工作負載的資料處理效能,最佳化OS核心中記憶體均衡、規整等的記憶體操作,提升整機記憶體的效能。
對於ack-koordinator的記憶體就近訪問加速功能,DSA可以明顯提升單次處理的速度,有效降低CPU核時。遠端記憶體使用量量越大,加速效果越明顯:十萬級到百萬級記憶體頁可實現30%~200%的速度提升和CPU節省。遷移約1.7 GB應用記憶體至本地,與無DSA硬體相比,遷移耗時降低至31.25%,頻寬提升至320.00%。
重要本文中提供的測試資料僅為理論值(參考值),實際資料以您的作業環境為準。
前提條件
已確保應用運行在多NUMA機型上,多NUMA機型為神龍裸金屬八代機型。關於ECS執行個體規格類型系列,請參見ECS執行個體規格。
本功能會為ecs.ebmc8i.48xlarge、ecs.c8i.32xlarge、ecs.g8i.48xlarge的八代機型提供更好的支援,推薦使用。
已安裝ack-koordinator組件,且組件版本為v1.2.0-ack1.2及以上,請參見ack-koordinator(ack-slo-manager)。
已通過kubectl工具串連叢集。具體操作,請參見擷取叢集KubeConfig並通過kubectl工具串連叢集。
費用說明
ack-koordinator組件本身的安裝和使用是免費的,不過需要注意的是,在以下情境中可能產生額外的費用:
步驟一:啟用DSA加速功能
ack-koordinator組件對已整合DSA硬體的節點會自動開啟DSA加速功能。您只需在叢集中配置合適的執行個體,部署ack-koordinator組件即可使用DSA加速功能。
如果您已在叢集中啟用記憶體就近訪問加速功能,DSA硬體節點能進一步提升加速效果。關於如何?記憶體就近訪問加速,請參見啟動容器記憶體就近訪問加速。
步驟二:驗證DSA加速功能
在保證資料安全的前提下,記憶體就近訪問加速功能支援將綁核應用遠端NUMA上的記憶體遷移至本地,提高本地訪存命中率,為記憶體密集型的工作負載提供更好的訪存效能。
下文以ecs.ebmc8i.48xlarge測試機型,驗證DSA加速功能啟用是否成功。
驗證步驟
登入目標節點,執行以下命令,確認處理器已整合DSA硬體。
關於如何登入測試節點,請參見ECS遠端連線方式概述。
ls /sys/bus/dsa
預期輸出無報錯且目錄非空,表明處理器已整合DSA硬體。
部署測試應用,並為其開啟記憶體就近訪問加速功能。
推薦使用記憶體密集型應用Redis進行部署和驗證。請參見使用樣本完成Redis應用的建立和記憶體就近訪問加速功能的啟用。
結果分析
下表對比在開啟和不開啟DSA加速功能的情境下,遷移26.12GB的Redis遠端記憶體所需的遷移時間,與CPU消耗(百萬級記憶體頁數)對比如下表所示。
測試情境 | 遷移時間(s) | CPU使用率 | 核時(s) |
關閉DSA加速功能 | 9.649 | 1.000 | 9.649 |
開啟DSA加速功能 | 4.928 | 0.668 | 3.292 |
測試資料表明,在啟用了DSA加速功能的記憶體遷移情境中,實際耗時降低至51.8%,平均CPU消耗降低至66.8%,所需核時降低至34.1%,表明DSA加速功能可以提升記憶體遷移的速度,並降低CPU消耗。
相關文檔
DSA硬體節點能進一步提升記憶體就近訪問加速功能的效果。關於如何?記憶體就近訪問加速,請參見啟動容器記憶體就近訪問加速。