全部產品
Search
文件中心

Elastic Compute Service:使用eRDMA

更新時間:Nov 22, 2024

eRDMA的能力實現需要基於支援eRDMA能力的執行個體規格,掛載彈性RDMA網卡(ERI),安裝eRDMA驅動,從而實現具有大規模RDMA的網路服務能力,體驗RDMA帶來的超低延遲。

ECS執行個體使能eRDMA

選擇支援eRDMA的執行個體規格

為ECS執行個體綁定ERI

您可以在建立執行個體的時候為主網卡開啟彈性RDMA介面,或者在執行個體建立後為執行個體綁定開啟了彈性RDMA介面的ERI。

  • 通過OpenAPI建立開啟了ERI的輔助彈性網卡並綁定到執行個體

    如果您是通過OpenAPI的方式建立並綁定輔助彈性網卡,則操作如下:

    1. 通過OpenAPI建立ERI。

      您可以通過CreateNetworkInterface 建立一個彈性網卡,並設定NetworkInterfaceTrafficMode參數的值為HighPerformance,即建立一個開啟了ERI的彈性網卡。

      調用成功後,請記錄返回資料中產生的彈性網卡ID(即NetworkInterfaceId對應的傳回值)。

    2. 調用AttachNetworkInterface,指定NetworkInterfaceId為上一步返回的網卡ID,指定InstanceId為目標執行個體ID,即將建立的開啟了ERI的彈性網卡綁定到目標執行個體上。

      重要

      如果您的執行個體規格支援綁定多個ERI,為了擷取最大網路頻寬,建議您在綁定時候為每張ERI指定不同的NetworkCardIndex,實現將不同的ERI綁定到不同的通道。詳細資料,請參見請求參數

為ECS執行個體安裝eRDMA驅動

重要
  • eRDMA驅動軟體由阿里雲自研,由阿里雲提供支援人員。

  • eRDMA驅動的安裝可能需要一段時間,請您耐心等待。

  • 驅動程式安裝包

    eRDMA不同安裝程式包版本的發布資訊(按版本由新到舊排序)

    版本

    發布時間

    下載地址

    校正和

    變更內容

    1.4.0

    2024年9月27日

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.4.0.tar.gz

    • MD5:77135d946dddc015000c8f3ea4e6c586

    • SHA256:8613d3d81e8eb3b78bf840c37cbe02c79f62631df36cdc8b2c7c101f49f5af29

    最佳化異構GPU情境下的效能

    1.3.3

    2023年10月09日

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.3.3.tar.gz

    • MD5:51ffb06266255139554275bc86fa4caa

    • SHA256:5aad6d006662bd902ef5e913fb97d2a6623aadeeacd06f1c3f1c74cbd1f57ded

    更新最新補丁包

    1.3.2

    2023年09月08日

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.3.2.tar.gz

    • MD5:8492016fc96eece6a60687b0e4ea66dd

    • SHA256:89ab265dc9fa8d56f1b2d8b13d7f50032390a265eddb2e04eeee3aa86fd169ce

    更新最新補丁包

    1.3.1

    2023年08月18日

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.3.1.tar.gz

    • MD5:b9b90212e6ba49d57b81d3c5d4210deb

    • SHA256:4ebe31760443613f8f61fcdbef7a85b277dabc59039d048898536ea4fe5d8d4a

    允許在驅動側配置底層的傳輸模式為強保序。強保序模式下,資料包只能按序提交到記憶體

    1.3.0

    2023年06月26日

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.3.0.tar.gz

    • MD5:2da0c65643b5e2ffb61d75e1b5e5a7ab

    • SHA256:cce03aac0e07d0890884c35ad4f10e9d15f587535d788c8fc97ea268312ad4a9

    • 註冊MR時,支援多級頁表

    • 驅動支援IPv6特性(完整的IPv6需要底層硬體同時支援)

    • 支援Ubuntu 22.04

    • 更新最新補丁包

    1.2.3

    2023年05月30日

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.2.3.tar.gz

    • MD5:7496a6324f3872469d7194c2e234b19f

    • SHA256:16c2de0d90da6906db91c2e2469aaad9e24131c44ce52b9464036f1c3747f8a2

    更新最新補丁包

    1.2.2

    2023年05月04日

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.2.2.tar.gz

    • MD5:f449d3961a41ff6a97a53cfa29e20d6c

    • SHA256:11fdb4b3c778762ad0bdf2d0327008aa2ecb22dc508c9f9fae3568b41ae5462b

    支援Ubuntu 22.04

    1.2.1

    2023年04月04日

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.2.1.tar.gz

    • MD5:e080103934da76ce83924da789aecece

    • SHA256:be3a89e57143d7544cf968052250df92f911aebb035f07b06ebeb8c5f13bf976

    更新最新補丁包

    1.2.0

    2023年03月09日

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.2.0.tar.gz

    • MD5:c8d440a6e35ec6d2aaf1a568affea876

    • SHA256:d484997e28e29f862dc580c112b55b389a00faf88dc6aa89eea588ee1369a8ca

    • 支援相容模式

    • 更新最新補丁包

    1.1.0

    2023年01月16日

    http://mirrors.cloud.aliyuncs.com/erdma/erdma_installer-1.1.0.tar.gz

    • MD5:1fea69d819919a77384f902213eb681e

    • SHA256:176c3bb35d5584e8c8e43eba9b1824b8cb2b43a19d802c4e469363ed8e33fea6

    更新最新補丁包

  • 安裝eRDMA驅動

    您可以選擇在購買執行個體的時候勾選安裝eRDMA驅動,或者為已購買的支援eRDMA的執行個體手動安裝eRDMA驅動。

  • eRDMA核心驅動

    完成eRDMA驅動安裝後,您可以通過eadm ver,查詢eRDMA的核心驅動版本。目前最新版本1.4.0的安裝程式包,對應的erdma核心驅動版本為0.2.37。

    image

驗證eRDMA配置的正確性

ibv_devinfo 可以協助使用者驗證RDMA功能是否正常工作。通過執行 ibv_devinfo 命令,使用者可以擷取到裝置的硬體屬性、連接埠狀態、支援的功能等資訊。如果RDMA相關組件已經正常運行,至少會有一個連接埠的狀態是 PORT_ACTIVE,這表明RDMA功能已經啟用並且可以正常使用。詳細資料,請參見測試RDMA 操作

ibv_devinfo 命令還可以通過 -v 參數來輸出更詳細的裝置資訊,包括裝置的硬體版本、支援的最大訊息大小、隊列數、記憶體視窗大小等。這些資訊對於診斷和最佳化RDMA網路效能非常有用。

您可以通過在執行個體上執行ibv_devinfo驗證執行個體eRDMA是否配置正確:

  • eRDMA配置正確:為執行個體的網卡開啟彈性RDMA介面並且已正確安裝eRDMA驅動。

    說明
    • 如果您的執行個體支援且綁定了多張彈性RDMA網卡,則執行個體的每個eRDMA裝置的連接埠state均為PORT_ACTIVE時,表示eRDMA網卡狀態正常。

    • 如果eRDMA裝置的連接埠stateinvalid state時,表示該eRDMA網卡狀態異常,建議先檢查輔助網卡是否配置正確。例如,通過執行ifconfig命令查看所有網卡配置是否存在,所有網卡IP地址是否存在。詳細資料,請參見配置輔助彈性網卡

    image

  • 執行個體未綁定ERI:執行個體已安裝eRDMA驅動,但是網卡未開啟彈性RDMA介面。您需要為ECS執行個體綁定ERI

    image

  • 未正確安裝eRDMA所需驅動程式:執行個體網卡開啟彈性RDMA介面,但是未正確安裝eRDMA驅動。您需要為ECS執行個體安裝eRDMA驅動

    image

您還可以使用diagnose工具對eRDMA的基礎功能進行診斷測試,詳細資料,請參見使用diagnose進行eRDMA的故障診斷和效能評估

eRDMA網路效能測試

perftest 是一個用於效能測試的工具集,它提供了多種測試選項,可以針對不同的網路操作進行測試,比如發送、接收、讀寫等。perftest允許使用者測量不同RDMA操作的效能,如延遲和頻寬。這些測試通常用於評估RDMA裝置和網路的效能,協助使用者最佳化配置或解決潛在問題。更多資訊,請參見perftest相關文檔

perftest測試集

perftest包括如下測試,您可以根據實際需求,通過perftest進行網路頻寬測試或網路延遲測試,以評估網路的效能。

RDMA操作

頻寬測試程式

延遲測試程式

Send

ib_send_bw(發送頻寬測試)

ib_send_lat(發送延遲測試)

RDMA Read

ib_read_bw(讀頻寬測試)

ib_read_lat(讀延遲測試)

RDMA Write

ib_write_bw(寫頻寬測試)

ib_write_lat(寫延遲測試)

RDMA Atomic

ib_atomic_bw(原子頻寬測試)

ib_atomic_lat(原子延遲測試)

Native Ethernet

raw_ethernet_bw(原生乙太網路頻寬測試)

raw_ethernet_lat(原生乙太網路延遲測試)

安裝perftest

您可以選擇開通公網通過官方倉庫下載並安裝,或者直接通過yum/apt源進行安裝。

通過官方倉庫下載並安裝
  1. 為ECS執行個體開通公網,詳細資料,請參見ECS實現公網通訊

  2. 訪問perftest官方倉庫下載並安裝perftest工具。

通過yum/apt源安裝
說明

不同Linux發行版的軟體源中包含的perftest版本可能不一致,在通訊時可能存在相容性問題。建議您通訊的執行個體使用相同的Linux發行版,否則請通過官方倉庫下載並安裝

  • Alibaba Cloud Linux 3/CentOS/Anolis OS

    sudo yum install perftest -y
  • Ubuntu

    sudo apt install perftest -y

使用perftest樣本

您可以將每一個測試程式作為一個獨立的命令執行,比如ib_send_lat運行發送延遲測試。

在使用 perftest 進行效能測試時,設定正確的測試參數是非常重要的,通過合理配置這些參數,您可以更精確地控制 perftest 的行為,以滿足特定的測試需求,並擷取更準確的測試結果。以下是一些關鍵的參數設定指南,可以協助您更有效地配置和運行 perftest

常用測試參數說明

您可以通過<子命令> -h 查看各類測試具體的參數說明。

測試類別

測試參數

延遲測試

  • -C, --report-cycles:以 CPU 週期為單位報告時間,這對於精確測量延遲非常有用。

  • -H, --report-histogram:列印所有結果(預設只列印摘要結果),這可以協助您瞭解資料的分布情況。

  • -U, --report-unsorted:列印未排序的結果(預設已排序),這有助於分析資料的原始分布

頻寬測試

  • -b, --bidirectional:測量雙向頻寬(預設為單向),這對於評估網路的雙向傳輸能力很重要。

  • -N, --no peak-bw:取消峰值頻寬計算(預設包括峰值頻寬),這可以協助您專註於穩定的頻寬效能。

  • -t, --tx-depth=<dep>:設定發送隊列的大小(預設為 128),這可以影響測試的並發性和效能。

  • -D, --duration=<sec>:以秒為單位設定測試的期間,這可以協助您控制測試的總時間長度

發送測試

  • -r, --rx-depth=<dep>:設定接收隊列的大小(預設為 512),這對於調整接收緩衝區的大小和效能有影響。

  • -g, --mcg=<num_of_qps>:向附加了<num_of_qps>個 QPs 的多播組發送訊息,這對於測試多播效能很有用。

其他進階選項

  • -u, --qp-timeout=<timeout>:設定 QP 逾時,逾時值為 4 usec * 2^(逾時),預設值為 14,這對於調整 QP 的逾時設定很有用。

  • --force-link=<type>:強制連結到特定類型:IB 或 Ethernet,這對於測試特定類型的網路連結很有協助。

  • --use_hugepages:使用 Hugepages 而不是 contig 或 memalign 分配,這對於最佳化記憶體使用量和效能很有協助。

  • --rate_limit=<limit>:設定發送包的最大速率,預設單位是 [Gbps],使用--rate_units可以改變單位,這對於限制測試中的頻寬很有用。

相關文檔

  • 如果您是在執行個體當中使用容器方式部署您的應用,希望將eRDMA功能引入容器,實現大規模資料轉送和高效能網路通訊,您可以參考在容器(Docker)中使用eRDMA

  • 您也可以在ACK(Alibaba Cloud Container Service for Kubernetes)叢集中使用eRDMA,可以為運行在叢集上的所有服務和應用提供低延遲、高輸送量的網路通訊能力。具體操作,請參見使用eRDMA加速容器網路

  • 如需監測或診斷eRDMA,方便您對eRDMA的運行狀態進行即時監控。具體操作,請參見監測和診斷eRDMA

  • 如需將eRDMA整合到您的TCP應用中,請參見應用適配概述