全部產品
Search
文件中心

Container Service for Kubernetes:使用硬體DSA進行資料流加速

更新時間:Jun 19, 2024

英特爾®DSA(Data Streaming Accelerator)資料流加速器是一種高效能的資料拷貝和資料轉換加速器,已整合在八代神龍SPR機型的處理器中。ack-koordinator對已整合DSA硬體的節點,將自動開啟DSA加速功能,用於最佳化DRAM、持久記憶體和各種資料處理進程中常見的資料流拷貝和轉換。本文介紹如何使用硬體DSA進行資料流加速。

索引

前提條件

  • 已建立ACK Pro叢集,且叢集版本為1.18及以上版本。具體操作,請參見建立Kubernetes託管版叢集

  • 已通過kubectl串連Kubernetes叢集。具體操作,請參見擷取叢集KubeConfig並通過kubectl工具串連叢集

  • 已安裝ack-koordinator組件(原ack-slo-manager),且組件版本為v1.2.0-ack1.2及以上版本。關於安裝ack-koordinator組件的具體操作,請參見ack-koordinator(ack-slo-manager)

    說明

    ack-koordinator適配了原resource-controller組件的所有功能。如果您正在使用resource-controller,請您先卸載resource-controller,再安裝ack-koordinator。關於卸載組件的具體操作,請參見卸載resource-controller

  • 已確保多NUMA機型為神龍裸金屬ecs.ebmc、ecs.ebmg、ecs.ebmgn、ecs.ebmr、ecs.ebmhfc、ecs.scc等五、 六、七、八代機型。

    說明

    記憶體就近訪問加速功能尤其對ecs.ebmc8i.48xlarge、ecs.c8i.32xlarge、ecs.g8i.48xlarge的八代機型提供更好的支援。關於ECS執行個體規格類型系列,請參見ECS執行個體規格

費用說明

ack-koordinator組件本身的安裝和使用是免費的,不過需要注意的是,在以下情境中可能產生額外的費用:

  • ack-koordinator是非託管組件,安裝後將佔用Worker節點資源。您可以在安裝組件時配置各模組的資源申請量。

  • ack-koordinator預設會將資源畫像、精細化調度等功能的監控指標以Prometheus的格式對外透出。若您配置組件時開啟了ACK-Koordinator開啟Prometheus監控指標選項並使用了阿里雲Prometheus服務,這些指標將被視為自訂指標併產生相應費用。具體費用取決於您的叢集規模和應用數量等因素。建議您在啟用此功能前,仔細閱讀阿里雲Prometheus計費說明,瞭解自訂指標的免費額度和收費策略。您可以通過賬單和用量查詢,監控和管理您的資源使用方式。

DSA加速功能的優勢

八代Intel機型處理器整合了英特爾®DSA硬體,並基於Alinux 3增加了相關驅動。在此機型中安裝ack-koordinator組件,容器化自適應開啟DSA加速功能,將相關記憶體操作從CPU卸載至DSA硬體,實現資料拷貝和轉換的加速,並有效緩解過程中的CPU抖動。DSA加速功能更多優勢如下。

  • 提升節點上資料密集型工作負載的資料處理效能,最佳化OS核心中記憶體均衡、規整等的記憶體操作,提升整機記憶體的效能。

  • 對於ack-koordinator的記憶體就近訪問加速功能,DSA可以明顯提升單次處理的速度,有效降低CPU核時。遠端記憶體使用量量越大,加速效果越明顯,十萬級到百萬級記憶體頁有30%~200%的速度提升和CPU節省。遷移約1.7 GB應用記憶體至本地,與無DSA硬體相比,遷移耗時降低至31.25%,頻寬提升至320.00%。

    重要

    本文中提供的測試資料僅為理論值(參考值),實際資料以您的作業環境為準。

關於DSA更多資訊,請參見Intel官方文檔

使用DSA加速功能

ack-koordinator組件對已整合DSA硬體的節點,將自動開啟DSA加速功能,您只需在叢集中部署該組件即可使用DSA加速功能,無需額外配置。關於ack-koordinator的記憶體就近訪問加速功能,請參見多NUMA機型的容器記憶體就近訪問加速

驗證DSA加速功能

記憶體就近訪問加速功能以資料安全的方式將綁核應用遠端NUMA上的記憶體遷移至本地,提高本地訪存命中率,為記憶體密集型的工作負載提供更好的訪存效能。

測試環境

DSA加速功能測試需要多NUMA架構機型,例如ecs.ebmc8i.48xlarge、ecs.c8i.32xlarge、ecs.g8i.48xlarge等。本文選用測試機型為ecs.ebmc8i.48xlarge。

測試步驟

  1. 登入測試節點,執行以下指令,確認處理器已整合DSA硬體。

    ls /sys/bus/dsa

    預期輸出無報錯且目錄非空,表明處理器已整合DSA硬體。

  2. 部署測試應用,並為其開啟記憶體就近訪問加速功能。

    推薦使用記憶體密集型應用Redis。

測試結論

對26.12 GB 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消耗。