彈性RDMA網卡(Elastic RDMA Interface,簡稱ERI)是一種可以綁定到ECS執行個體的虛擬網卡,它是實現eRDMA功能的關鍵組件。ERI依附於彈性網卡(ENI),在彈性網卡的基礎上開啟RDMA的功能。
功能介紹
在ECS執行個體上配置eRDMA,需要為執行個體綁定彈性RDMA網卡。eRDMA是阿里雲提供的低延遲、大吞吐、高彈性的高效能RDMA網路服務。通過ERI,eRDMA能夠在ECS執行個體上實現超低延遲和高輸送量的網路通訊。詳細資料,請參見eRDMA概述。
目前只有部分執行個體規格支援綁定彈性RDMA網卡,詳細資料,請參見執行個體規格類型系列。
您可以通過DescribeInstanceTypes返回參數中的EriQuantity的值,查詢執行個體規格支援綁定ERI的最大數量(0表示不支援彈性RDMA介面)。
執行個體綁定多個彈性RDMA介面時,需要考慮網卡的隊列對數量限制。詳細資料,請參見隊列對(QP)數。
建立彈性RDMA網卡
隨執行個體建立ERI
對於支援eRDMA的執行個體規格,您可以在購買執行個體的時候選擇開啟網卡的彈性RDMA介面。不同類型的執行個體的具體配置可能不同:
企業級執行個體:具體操作,請參見購買企業級執行個體時配置eRDMA。
GPU執行個體:具體操作,請參見在GPU執行個體上啟用eRDMA。
單獨建立ERI
在建立輔助彈性網卡時,啟動增加彈性RDMA介面。ERI會共用該輔助彈性網卡的設定,包括彈性網卡的IP、應用於彈性網卡的安全性群組規則等。具體操作,請參見建立並使用彈性網卡。
通過OpenAPI建立ERI
您可以通過CreateNetworkInterface 建立一個彈性網卡,並設定NetworkInterfaceTrafficMode參數的值為HighPerformance,即建立一個開啟了ERI的彈性網卡。
彈性RDMA網卡的管理,如綁定和解除綁定、修改屬性等操作,請參見管理彈性網卡。
查看彈性RDMA網卡
在控制台查看
您可以在控制台查看彈性網卡是否開啟RDMA介面。
訪問ECS控制台-執行個體。
在頁面左側頂部,選擇目標資源所在的資源群組和地區。
找到目標ECS執行個體,點擊執行個體ID進入執行個體詳情頁。
選擇彈性網卡頁簽,可以看到目標ECS執行個體綁定的彈性網卡的詳細資料。
在網卡類型列,可以看到彈性RDMA介面標誌,這表示網卡開啟了彈性RDMA介面。
通過OpenAPI查看
您可以通過DescribeNetworkInterfaceAttribute查詢網卡屬性,返回參數中的NetworkInterfaceTrafficMode的值表示網卡是否開啟彈性RDMA介面:
HighPerformance:開啟彈性RDMA介面,使用彈性RDMA通訊模式。
Standard:關閉彈性RDMA介面,使用TCP通訊模式。
在執行個體內部查看
當執行個體綁定的彈性網卡開啟彈性RDMA介面後,您可以在執行個體內部查看RDMA網卡。
遠程登入執行個體。
具體操作,請參見使用Workbench工具以SSH協議登入Linux執行個體。
執行以下命令,查看RDMA網卡裝置。
ibv_devices
通過返回的裝置名稱,可以看到是eRDMA網卡裝置。
如果您的執行個體綁定了多個開啟彈性RDMA介面的網卡裝置,輸出如下所示:
您也可以通過
ibv_devinfo
查看彈性RDMA網卡更多配置參數,如連接埠狀態、支援的最大隊列數等。如果您無法在執行個體內部查看到以上資訊,可能是eRDMA驅動安裝異常或者網卡配置異常,您可以參考驗證eRDMA配置的正確性進行確認並修複。
修改已建立彈性網卡的RDMA介面
您可以通過ModifyNetworkInterfaceAttribute,設定NetworkInterfaceTrafficConfig中的NetworkInterfaceTrafficMode參數的值來配置網卡的通訊模式,即開啟或關閉彈性RDMA介面。
HighPerformance:開啟彈性RDMA介面,使用彈性RDMA通訊模式。
Standard:關閉彈性RDMA介面,使用TCP通訊模式。
您無法在控制台上為已建立的彈性網卡開啟或關閉彈性RDMA介面。
隊列對(QP)數
QP(Queue Pair)是RDMA中的基本通訊實體,由一個發送隊列(Send Queue,SQ)和一個接收隊列(Receive Queue,RQ)組成。QP負責管理髮送和接收的資料。
隊列對(QP)數是指一個RDMA裝置或網路介面上可以建立的最大隊列對QP數量,它決定了RDMA網路可以支援的最大並發串連數,影響網路的擴充性和並發處理能力。
執行個體的QP數
執行個體的QP數量和規格有關,當您為ECS執行個體綁定多張彈性RDMA網卡時,根據執行個體規格不同,所允許的所有網卡的QP數量的上限不同,您可以通過DescribeInstanceTypes查詢對應執行個體規格所允許的所有網卡的QP數量上限:
企業級CPU執行個體:返回參數中的QueuePairNumber的值,即執行個體規格允許的所有彈性RDMA網卡的QP數量上限。
GPU執行個體:允許的所有網卡QP數上限為QueuePairNumber * NetworkCardQuantity。
彈性RDMA網卡的QP數
彈性RDMA網卡在未設定QueuePairNumber綁定到執行個體上時,實際生效的預設值即執行個體規格所允許的所有網卡的QP數上限。對於支援多彈性RDMA網卡的執行個體規格,如果您已經附加了一個未設定QueuePairNumber的彈性RDMA網卡,那麼將不能再繼續附加更多的彈性RDMA網卡。您需要調整彈性網卡的QP數在上限範圍內,然後再附加到執行個體上。
設定彈性網卡的QP數
您可以通過ModifyNetworkInterfaceAttribute,設定QueuePairNumber參數的值為指定的網卡QP數。
查看彈性網卡的QP數
您可以通過DescribeNetworkInterfaceAttribute查詢網卡屬性,返回參數中的QueuePairNumber即該彈性網卡的QP數。
當輔助彈性網卡建立完成尚未綁定到執行個體時,不返回此參數。
合理設定QP數
設定合適的QP數量對於最佳化應用效能非常重要,因為過多或過少的QP都可能導致資源浪費或者成為效能瓶頸。
理解應用需求:建議您根據應用情境,結合目標執行個體規格和規劃的網卡數量等,確定QP的需求量。如果您的應用程式是高並發、低延遲類型,則可能需要較多的QP來支援更多的並行串連;如果是巨量資料傳輸情境,那麼單個QP的頻寬利用率可能是更重要的考慮因素。
參考硬體限制:
不同執行個體規格所允許的彈性RDMA網卡的最大QP數量不同,具體查詢方法,請參見執行個體規格的QP數。
需要考慮伺服器記憶體大小等因素,每個QP都會佔用一定的系統資源。
測試與最佳化:完成初步配置後,您需要進行實際環境下的效能測試。根據測試結果進一步調整QP數量及其他相關參數。注意觀察是否有任何異常情況發生,比如錯誤資訊、丟包率增高等。
持續監控:即便找到了一個看起來不錯的配置方案,也應該定期檢查系統的運行狀態,確保隨著業務增長或其他變化,當前設定仍然適合。
正確設定QP數量是一項需要綜合考慮多個因素的工作。建議結合自身業務特點、現有基礎設施條件及目標效能要求來進行細緻規劃與調整。