精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

深入了解RDMA技術(shù)

SDNLAB ? 來源:SDNLAB ? 2023-12-26 09:23 ? 次閱讀

作者簡介

Explorer,專注于高性能網(wǎng)絡(luò)、虛擬化網(wǎng)絡(luò)及網(wǎng)卡的測試方案研究。熟悉dpdk,rdma,sdn等技術(shù)的應(yīng)用與解決方案。

01深入了解RDMA技術(shù)

背景概述

隨著互聯(lián)網(wǎng)的普及和數(shù)字化轉(zhuǎn)型的加速,大量數(shù)據(jù)被生成和傳輸。在AI訓(xùn)練和推理、大數(shù)據(jù)分析以及存儲應(yīng)用中,處理這些海量數(shù)據(jù)變得至關(guān)重要。因此,高性能網(wǎng)絡(luò)對于快速而可靠的數(shù)據(jù)傳輸至關(guān)重要。

RDMA(Remote Direct Memory Access,遠程直接內(nèi)存訪問)是一種高效的數(shù)據(jù)傳輸技術(shù),它使得兩臺計算機之間可以直接從對方的內(nèi)存中讀取或?qū)懭霐?shù)據(jù),而不需要CPU的介入。通過RDMA,計算機之間的數(shù)據(jù)傳輸速度更快,延遲更低,傳輸效率更高,而且可以減少CPU的負載。

應(yīng)用場景

RDMA技術(shù)在各個領(lǐng)域都有廣泛的應(yīng)用,其高性能和低延遲的特點使其成為許多應(yīng)用的關(guān)鍵組成部分,以下是當前RDMA技術(shù)的一些應(yīng)用場景介紹:

高性能計算(HPC)

RDMA技術(shù)在HPC領(lǐng)域得到廣泛應(yīng)用,用于大規(guī)??茖W(xué)計算、氣象模擬、分子建模等任務(wù)。RDMA可以實現(xiàn)節(jié)點之間的快速數(shù)據(jù)共享,從而加速復(fù)雜計算任務(wù)的完成,降低了整體計算時間。

云計算和虛擬化

公有云和私有云服務(wù)提供商采用RDMA技術(shù)來改善虛擬機之間的通信性能。這在云環(huán)境中特別重要,因為它可以提高虛擬機之間的網(wǎng)絡(luò)吞吐量,從而提高了云計算資源的利用率。

存儲系統(tǒng)

RDMA技術(shù)在高性能存儲系統(tǒng)中發(fā)揮重要作用,如分布式文件系統(tǒng)、SAN存儲、塊存儲等。它提供了低延遲、高帶寬的數(shù)據(jù)傳輸,有助于加速數(shù)據(jù)讀寫操作,提高存儲性能。

金融交易

在金融領(lǐng)域,時間和性能至關(guān)重要。RDMA技術(shù)用于構(gòu)建低延遲的交易系統(tǒng),確保交易數(shù)據(jù)能夠?qū)崟r傳輸和處理,從而降低了交易風(fēng)險。

人工智能深度學(xué)習(xí)

訓(xùn)練深度學(xué)習(xí)模型需要大量數(shù)據(jù)傳輸和計算資源。RDMA技術(shù)可用于加速大規(guī)模深度學(xué)習(xí)任務(wù),減少模型訓(xùn)練時間。

實時數(shù)據(jù)分析

對于需要實時數(shù)據(jù)分析的應(yīng)用,如廣告投放、市場分析和網(wǎng)絡(luò)安全監(jiān)控,RDMA技術(shù)可以確保數(shù)據(jù)能夠?qū)崟r傳輸和分析,提供即時決策支持。

遠程備份和復(fù)制

在數(shù)據(jù)備份和復(fù)制中,RDMA技術(shù)可以加速數(shù)據(jù)傳輸,降低備份時間,同時提供數(shù)據(jù)完整性和可靠性。

高性能數(shù)據(jù)庫

RDMA技術(shù)可用于構(gòu)建高性能數(shù)據(jù)庫系統(tǒng),實現(xiàn)快速數(shù)據(jù)訪問和查詢操作,從而加速數(shù)據(jù)處理。

RDMA技術(shù)在各種領(lǐng)域中都有重要應(yīng)用,特別是在需要高性能、低延遲和大規(guī)模數(shù)據(jù)傳輸?shù)膱鼍爸小K鼮檫@些應(yīng)用提供了關(guān)鍵的網(wǎng)絡(luò)通信支持,加速了各種計算和數(shù)據(jù)處理任務(wù),有助于提高系統(tǒng)性能和效率。隨著技術(shù)的不斷發(fā)展,RDMA技術(shù)的應(yīng)用前景將繼續(xù)擴展。

技術(shù)特點

內(nèi)核 Bypass:RDMA允許數(shù)據(jù)直接在內(nèi)存之間傳輸,而不需要通過操作系統(tǒng)內(nèi)核。傳統(tǒng)的Socket通信在數(shù)據(jù)傳輸時需要將數(shù)據(jù)從用戶空間復(fù)制到內(nèi)核空間,然后再從內(nèi)核空間復(fù)制到另一個用戶空間。而RDMA通過繞過內(nèi)核,使數(shù)據(jù)可以直接在用戶空間之間傳輸,從而減少了數(shù)據(jù)復(fù)制的開銷,提高了數(shù)據(jù)傳輸效率。

零拷貝:RDMA支持零拷貝操作,意味著數(shù)據(jù)可以直接在應(yīng)用程序的內(nèi)存空間中傳輸,而無需中間的數(shù)據(jù)拷貝操作。這減少了CPU的負擔和數(shù)據(jù)傳輸?shù)难舆t,提高了系統(tǒng)性能。

協(xié)議卸載:RDMA技術(shù)允許網(wǎng)絡(luò)適配器卸載協(xié)議的處理任務(wù),將網(wǎng)絡(luò)協(xié)議的處理從主機CPU轉(zhuǎn)移到網(wǎng)絡(luò)適配器上。這樣可以減輕主機CPU的負擔,提高系統(tǒng)整體性能。

低延遲和高吞吐量:RDMA的直接內(nèi)存訪問和零拷貝特性導(dǎo)致了低延遲和高吞吐量。數(shù)據(jù)可以直接在內(nèi)存之間傳輸,而不需要中間的數(shù)據(jù)復(fù)制,從而減少了通信的延遲并提高了數(shù)據(jù)傳輸?shù)乃俾省?/p>

支持遠程直接內(nèi)存訪問:RDMA允許應(yīng)用程序直接訪問遠程主機的內(nèi)存,而無需通過中間服務(wù)器進行數(shù)據(jù)傳輸。這使得在分布式系統(tǒng)中進行高效的數(shù)據(jù)共享成為可能,同時減少了通信的開銷。

支持協(xié)議

RDMA技術(shù)支持三類協(xié)議,分別為InfiniBand(IB),RDMA over Converged Ethernet(RoCE)和internet Wide Area RDMA Protocol(iWARP),三類協(xié)議使用相同的RDMA標準。

>InfiniBand

InfiniBand是一種基于InfiniBand架構(gòu)的RDMA技術(shù),它提供了一種基于通道的點對點消息隊列轉(zhuǎn)發(fā)模型,每個應(yīng)用都可通過創(chuàng)建的虛擬通道直接獲取本應(yīng)用的數(shù)據(jù)消息,無需其他操作系統(tǒng)及協(xié)議棧的介入。InfiniBand架構(gòu)的應(yīng)用層采用了RDMA技術(shù),可以提供遠程節(jié)點間RDMA讀寫訪問,完全卸載CPU工作負載;網(wǎng)絡(luò)傳輸采用了高帶寬的傳輸;鏈路層設(shè)置特定的重傳機制保證服務(wù)質(zhì)量,不需要數(shù)據(jù)緩沖。

InfiniBand必須運行在InfiniBand網(wǎng)絡(luò)環(huán)境下,必須使用IB交換機及IB網(wǎng)卡才可實現(xiàn)。

>RoCE

RoCE技術(shù)支持在以太網(wǎng)上承載IB協(xié)議,實現(xiàn)RDMA over Ethernet。RoCE與InfiniBand技術(shù)有相同的軟件應(yīng)用層及傳輸控制層,僅網(wǎng)絡(luò)層及以太網(wǎng)鏈路層存在差異。

RoCE v1協(xié)議:基于以太網(wǎng)承載RDMA,只能部署于二層網(wǎng)絡(luò),它的報文結(jié)構(gòu)是在原有的IB架構(gòu)的報文上增加二層以太網(wǎng)的報文頭,通過Ethertype 0x8915標識RoCE報文。

RoCE v2協(xié)議:基于UDP/IP協(xié)議承載RDMA,可部署于三層網(wǎng)絡(luò),它的報文結(jié)構(gòu)是在原有的IB架構(gòu)的報文上增加UDP頭、IP頭和二層以太網(wǎng)報文頭,通過UDP目的端口號4791標識RoCE報文。RoCE v2支持基于源端口號hash,采用ECMP實現(xiàn)負載分擔,提高了網(wǎng)絡(luò)的利用率。

下圖為RoCE的協(xié)議棧:

wKgaomWJWGiAAAOUAAAkYety21M569.jpg

| RoCE協(xié)議棧

>iWARP

iWARP協(xié)議是IETF基于TCP提出的,因為TCP是面向連接的可靠協(xié)議,這使得iWARP在面對有損網(wǎng)絡(luò)場景(可以理解為網(wǎng)絡(luò)環(huán)境中可能經(jīng)常出現(xiàn)丟包)時相比于RoCE v2和IB具有更好的可靠性,在大規(guī)模組網(wǎng)時也有明顯的優(yōu)勢。但是大量的TCP連接會耗費很多的內(nèi)存資源,另外TCP復(fù)雜的流控等機制會導(dǎo)致性能問題,所以從性能上看iWARP要比UDP的RoCE v2和IB差。

>網(wǎng)絡(luò)設(shè)備

在實際的生產(chǎn)環(huán)境中,無論是何種協(xié)議支持的RDMA技術(shù),都需要硬件的支撐。

支持iWARP和RoCEv2的Intel E810系列網(wǎng)卡:https://www.intel.cn/content/www/cn/zh/products/sku/192558/intel-ethernet-network-adapter-e810cqda2/specifications.html

wKgaomWJWGiACsn8AABdyf5i_8A171.jpg

支持InfiniBand的Mellanox CX-7系列網(wǎng)卡:https://nvdam.widen.net/s/csf8rmnqwl/infiniband-ethernet-datasheet-connectx-7-ds-nv-us-2544471

支持InfiniBand的NVIDIA Quantum-2 InfiniBand系列交換機:

https://nvdam.widen.net/s/k8sqcr6gzb/infiniband-quantum-2-qm9700-series-datasheet-us-nvidia-1751454-r8-web

wKgaomWJWGiAW0RdAAAm0gZ492I446.jpg

02構(gòu)建RDMA環(huán)境

使用2張Mellanox CX-4對接測試RoCEv2功能及性能

Mellanox官網(wǎng)下載CX-4的OFED驅(qū)動

下載基礎(chǔ)軟件包
yum install libusbx lsof tcl gcc-gfortran fuse-libs tcsh tk perl pcituiles
解壓驅(qū)動后安裝
./mlnxofedinstall
安裝完成后,載入新驅(qū)動
[root@localhost MLNX_OFED_LINUX-5.8-2.0.3.0-rhel7.9-x86_64]# /etc/init.d/openibd restart
Unloading HCA driver: [ OK ]
Loading HCA driver and Access Layer: [ OK ]

查看節(jié)點上RDMA設(shè)備,node GUID對應(yīng)的是網(wǎng)卡的mac地址

[root@localhost ~]# ibv_devices
device node GUID
------ ----------------
mlx5_0 b8cef60300ed9572
mlx5_1 b8cef60300ed9573

查看device mlx5_0的port狀態(tài),這里rate為25Gb/sec

[root@localhost ~]# ibstatus mlx5_0
Infiniband device 'mlx5_0' port 1 status:
default gid: fe800000bacefeed:9572
base lid: 0x0
sm lid: 0x0
state: 4: ACTIVE
phys state: 5: LinkUp
rate: 25 Gb/sec (1X EDR)
link_layer: Ethernet

到這里,最簡單的RDMA環(huán)境搭建完成,如果需要測試高階功能,例如PFC,ECN或者ECMP則需要更復(fù)雜的組網(wǎng),也需要引入相應(yīng)的交換機來支持功能的驗證。

03RDMA測試實驗

CM建鏈測試

實驗?zāi)康模篊ommunication Management Protocol,通信管理協(xié)議。指的是一種建立于Infiniband/RoCE協(xié)議基礎(chǔ)之上的建鏈方式。以下實驗通過抓取CM建鏈過程中數(shù)據(jù)包交互的過程,來驗證是否符合IB協(xié)議所定義的建鏈流程。

以RC建鏈過程測試為例:

服務(wù)端啟動# ib_send_bw -F -d mlx5_0 -s 100 -n 5 -R
客戶端啟動#ib_send_bw -F -d mlx5_0 -s 100 -n 5 192.168.100.9 -R

通過抓包分析RC CM建鏈的過程:

wKgZomWJWGiADwL8AAD6ryVlPRM125.jpg

| CM RC建鏈過程

client和server端交互的數(shù)據(jù)報文如下:

RC CM建鏈的過程一共有3個數(shù)據(jù)包,分別是ConnectRequest,ConnectReply和ReadToUse。建鏈完成后,就開始按照交換好的QP信息進行數(shù)據(jù)發(fā)送。

wKgZomWJWGiAIzSqAACKm2MU2hA507.jpg

REQ用于啟動CM建鏈,client端發(fā)送請求,提供端口地址(GID/LID),以及本端的QPN信息。

wKgZomWJWGiAKRYSAABCIZk14jQ864.jpg

REP用于server端在接收到REQ后,驗證了serviceid,primary以及private data里面的數(shù)據(jù)后,接收了client端的連接請求,并且發(fā)送了REP消息,攜帶了本端的QPN,起始PSN等信息。

wKgZomWJWGiAWnwlAAH96VyPb5M691.jpg

RTU消息則表示client端接收到REP后,根據(jù)雙方約定好后的QP進行數(shù)據(jù)交互。

wKgaomWJWGiAQwQDAAH05tK2WGg888.jpg

回過頭來查看perftest執(zhí)行后的結(jié)果,本端的QP 190(0x00be)和對端的QP187 (0x00bb)建立連接并發(fā)送數(shù)據(jù)。

[root@localhost ~]# ib_send_bw -F -d mlx5_0 -s 100 -n 5 -R 192.168.100.9
---------------------------------------------------------------------------------------
Send BW Test
Dual-port : OFF Device : mlx5_0
Number of qps : 1 Transport type : IB
Connection type : RC Using SRQ : OFF
PCIe relax order: ON
ibv_wr* API : ON
TX depth : 5
CQ Moderation : 5
Mtu : 1024[B]
Link type : Ethernet
GID index : 3
Max inline data : 0[B]
rdma_cm QPs : ON
Data ex. method : rdma_cm
---------------------------------------------------------------------------------------
local address: LID 0000 QPN 0x00be PSN 0x524880
GID: 0000000000255192100:08
remote address: LID 0000 QPN 0x00bb PSN 0x429476
GID: 0000000000255192100:09
---------------------------------------------------------------------------------------
#bytes #iterations BW peak[MB/sec] BW average[MB/sec] MsgRate[Mpps]
100 5 49.75 49.74 0.521597
---------------------------------------------------------------------------------------

也可以通過后續(xù)交換的數(shù)據(jù)包來查看QP信息,發(fā)給遠端QPN 187(0x00bb)的send數(shù)據(jù):

wKgaomWJWKiAHWVCAAGthAok8MM348.jpg

在CM建鏈測試的最后,我們需要關(guān)注在建鏈的過程中,client端和server端其實是通過send ud消息來交互建鏈過程,這個過程中所使用的QP為QP1。

這里順便提一句,在RDMA中,有幾個QP是預(yù)留的,QP0用于處理子網(wǎng)管理消息,QP1用于處理 SA(Subnet Administrator)或 GS(Generic Services)的消息。

wKgZomWJWKiAQE-1AAKXOLmSRjU577.jpg

RC(Reliable Connection)測試

實驗?zāi)康模涸赗C服務(wù)類型中,通信的兩端建立了一個可靠的連接。這種連接模型提供了類似于TCP的可靠性,確保數(shù)據(jù)的按序傳遞和可靠傳輸。在RDMA的RC模型中,數(shù)據(jù)傳輸?shù)捻樞蚴怯斜U系模彝ㄐ诺膬啥丝梢赃M行錯誤檢測和重傳。以下實驗驗證client端和server端是否可以建立正常的RC連接,并進行數(shù)據(jù)包的傳輸。

RC的測試通常使用write或者read類型的消息來進行驗證,通過設(shè)置數(shù)據(jù)包長度與pmtu的組合來驗證各類消息報文。

服務(wù)端測試指令

[root@localhost ~]# ib_write_bw -F -d mlx5_0 -s 64 -p 1024 -n 100 -c RC

客戶端測試指令

[root@localhost ~]# ib_write_bw -F -d mlx5_0 -s 64 -p 1024 -n 100 -c RC 192.168.100.9
---------------------------------------------------------------------------------------
RDMA_Write BW Test
Dual-port : OFF Device : mlx5_0
Number of qps : 1 Transport type : IB
Connection type : RC Using SRQ : OFF
PCIe relax order: ON
ibv_wr* API : ON
TX depth : 100
CQ Moderation : 100
Mtu : 1024[B]
Link type : Ethernet
GID index : 3
Max inline data : 0[B]
rdma_cm QPs : OFF
Data ex. method : Ethernet
---------------------------------------------------------------------------------------
local address: LID 0000 QPN 0x00eb PSN 0x76710c RKey 0x1fcffc VAddr 0x000000021a2000
GID: 0000000000255192100:08
remote address: LID 0000 QPN 0x00e8 PSN 0xcc230d RKey 0x1fcef8 VAddr 0x00000000f68000
GID: 0000000000255192100:09
---------------------------------------------------------------------------------------
#bytes #iterations BW peak[MB/sec] BW average[MB/sec] MsgRate[Mpps]
64 100 243.35 190.55 3.121944
---------------------------------------------------------------------------------------

這里指定了數(shù)據(jù)包長度為64,pmtu長度為1024。當數(shù)據(jù)包長度小于pmtu時,則write的消息都為“write only"。

wKgZomWJWKiAUy-YAABL2grjTKM382.jpg

修改數(shù)據(jù)包長度進行再次測試,當數(shù)據(jù)包長度大于pmtu,且小于2*pmtu時,則wirte的消息為“write first”和“write last”。

wKgZomWJWKiANYgmAAALBgV_Fqg362.jpg

wKgaomWJWKiASe9vAAALArUUY74395.jpg

修改數(shù)據(jù)包長度進行再次測試,當數(shù)據(jù)包長度大于2*pmtu時,則write的消息為write first”,“write middle”和“write last”。

wKgZomWJWKiANYgmAAALBgV_Fqg362.jpg

wKgaomWJWKmAPEkHAAAK6Bvzghw314.jpg

wKgaomWJWKiASe9vAAALArUUY74395.jpg

當然測試的時候也可以修改pmtu進行驗證,pmtu有嚴格的長度要求,例如256,512,1024等。如下圖雖然MTU為1500,但是實際的RDMA PMTU為1024。

[root@localhost /]# ibv_devinfo
hca_id: mlx5_0
transport: InfiniBand (0)
fw_ver: 14.32.1010
node_guid: b8ce00ed:9572
sys_image_guid: b8ce00ed:9572
vendor_id: 0x02c9
vendor_part_id: 4117
hw_ver: 0x0
board_id: MT_2420110034
phys_port_cnt: 1
port: 1
state: PORT_ACTIVE (4)
max_mtu: 4096 (5)
active_mtu: 1024 (3)
sm_lid: 0
port_lid: 0
port_lmc: 0x00
link_layer: Ethernet

UD(Unreliable Datagram)測試

實驗?zāi)康模篣D 連接更注重性能,適用于那些對數(shù)據(jù)傳輸?shù)目煽啃砸笙鄬^低的場景。以下實驗驗證client端與server端是否可以建立正常的UD連接,并進行數(shù)據(jù)包的傳輸。

在RDMA的消息類型中,UD測試只支持send消息類型,不支持write和read,這里使用send消息進行測試。

客戶端測試指令

[root@localhost ~]# ib_send_bw -F -d mlx5_0 -s 64 -p 1024 -n 100 -c UD

服務(wù)端測試指令

[root@localhost ~]# ib_send_bw -F -d mlx5_0 -n 100 -s 64 -p 1024 -c UD 192.168.100.9
---------------------------------------------------------------------------------------
Send BW Test
Dual-port : OFF Device : mlx5_0
Number of qps : 1 Transport type : IB
Connection type : UD Using SRQ : OFF
PCIe relax order: ON
ibv_wr* API : ON
TX depth : 100
CQ Moderation : 100
Mtu : 1024[B]
Link type : Ethernet
GID index : 3
Max inline data : 0[B]
rdma_cm QPs : OFF
Data ex. method : Ethernet
---------------------------------------------------------------------------------------
local address: LID 0000 QPN 0x1146 PSN 0x3def86
GID: 0000000000255192100:08
remote address: LID 0000 QPN 0x1152 PSN 0x3c2738
GID: 0000000000255192100:09
---------------------------------------------------------------------------------------
#bytes #iterations BW peak[MB/sec] BW average[MB/sec] MsgRate[Mpps]
64 100 152.03 98.70 1.617092
---------------------------------------------------------------------------------------

同RC測試一樣,修改數(shù)據(jù)包長度與pmtu,可以驗證不同的send消息報文,這不分測試不再贅述。


性能測試


RDMA 技術(shù)的設(shè)計目標之一是提供高性能、低延遲的遠程數(shù)據(jù)訪問,所以在RDMA的實驗中,關(guān)于性能的實驗尤為重要。性能測試項指標,一般關(guān)注各類型消息的帶寬和延時。

ib_send_lat latency test with send transactions
ib_send_bw bandwidth test with send transactions
ib_write_lat latency test with RDMA write transactions
ib_write_bw bandwidth test with RDMA write transactions
ib_read_lat latency test with RDMA read transactions
ib_read_bw bandwidth test with RDMA read transactions
ib_atomic_lat latency test with atomic transactions
ib_atomic_bw bandwidth test with atomic transactions


>bw測試
這里帶寬測試使用write消息來進行
write 服務(wù)端測試指令

[root@localhost ~]# ib_write_bw -F -d mlx5_0 -s 4096 -n 10000 --report_gbits -t 128 -q 4

write客戶端測試指令

[root@localhost ~]# ib_write_bw -F -d mlx5_0 -s 4096 -n 10000 192.168.100.9 --report_gbits -t 128 -q 4
---------------------------------------------------------------------------------------
RDMA_Write BW Test
Dual-port : OFF Device : mlx5_0
Number of qps : 4 Transport type : IB
Connection type : RC Using SRQ : OFF
PCIe relax order: ON
ibv_wr* API : ON
TX depth : 128
CQ Moderation : 100
Mtu : 1024[B]
Link type : Ethernet
GID index : 3
Max inline data : 0[B]
rdma_cm QPs : OFF
Data ex. method : Ethernet
---------------------------------------------------------------------------------------
local address: LID 0000 QPN 0x00df PSN 0x5a67fc RKey 0x1fcff3 VAddr 0x00000000d54000
GID: 0000000000255192100:08
local address: LID 0000 QPN 0x00e0 PSN 0x788b6d RKey 0x1fcff3 VAddr 0x00000000d55000
GID: 0000000000255192100:08
local address: LID 0000 QPN 0x00e1 PSN 0xe597d RKey 0x1fcff3 VAddr 0x00000000d56000
GID: 0000000000255192100:08
local address: LID 0000 QPN 0x00e2 PSN 0x6e9451 RKey 0x1fcff3 VAddr 0x00000000d57000
GID: 0000000000255192100:08
remote address: LID 0000 QPN 0x00dc PSN 0xfe4945 RKey 0x1fceef VAddr 0x00000000a13000
GID: 0000000000255192100:09
remote address: LID 0000 QPN 0x00dd PSN 0xf30d82 RKey 0x1fceef VAddr 0x00000000a14000
GID: 0000000000255192100:09
remote address: LID 0000 QPN 0x00de PSN 0x729a6e RKey 0x1fceef VAddr 0x00000000a15000
GID: 0000000000255192100:09
remote address: LID 0000 QPN 0x00df PSN 0xa2c0ee RKey 0x1fceef VAddr 0x00000000a16000
GID: 0000000000255192100:09
---------------------------------------------------------------------------------------
#bytes #iterations BW peak[Gb/sec] BW average[Gb/sec] MsgRate[Mpps]
4096 40000 23.05 23.05 0.703393
---------------------------------------------------------------------------------------

這里介紹一下幾個性能相關(guān)參數(shù)

s 4096:使用長度為4096字節(jié)的數(shù)據(jù)包進行測試,大包的性能會優(yōu)于小包。

n 10000:測試數(shù)據(jù)包數(shù),數(shù)量過小的話測試性能會有偏差。

t 128:tx隊列深度。

q 4:使用qp數(shù)。

最后帶寬結(jié)果為23.05Gb/sec,上文有描述本次測試使用的網(wǎng)卡帶寬規(guī)格為25Gb/sec,這里RoCE的性能已經(jīng)快要跑滿網(wǎng)卡。

>lat測試

這里進行read消息的延時測試

read 服務(wù)端測試指令

[root@localhost ~]# ib_read_lat -F -d mlx5_0 -s 4096 -n 10000

read 客戶端測試指令
測試延時的話是不能使用多QP的,只能使用1個QP進行測試

[root@localhost ~]# ib_read_lat -F -d mlx5_0 -s 4096 -n 10000 192.168.100.9 -t 128
---------------------------------------------------------------------------------------
RDMA_Read Latency Test
Dual-port : OFF Device : mlx5_0
Number of qps : 1 Transport type : IB
Connection type : RC Using SRQ : OFF
PCIe relax order: ON
ibv_wr* API : ON
TX depth : 128
Mtu : 1024[B]
Link type : Ethernet
GID index : 3
Outstand reads : 16
rdma_cm QPs : OFF
Data ex. method : Ethernet
---------------------------------------------------------------------------------------
local address: LID 0000 QPN 0x00e9 PSN 0xf265e5 OUT 0x10 RKey 0x1fcffa VAddr 0x00000002090000
GID: 0000000000255192100:08
remote address: LID 0000 QPN 0x00e6 PSN 0x396d2b OUT 0x10 RKey 0x1fcef6 VAddr 0x000000013f0000
GID: 0000000000255192100:09
---------------------------------------------------------------------------------------
#bytes #iterations t_min[usec] t_max[usec] t_typical[usec] t_avg[usec] t_stdev[usec] 99% percentile[usec] 99.9% percentile[usec]
4096 10000 4.89 23.00 5.15 5.27 0.84 6.75 19.88
---------------------------------------------------------------------------------------

觀察最后的延時結(jié)果,其中99.9%的延時實驗數(shù)據(jù)為19.88usec。

04RDMA的抓包方式

抓取RDMA數(shù)據(jù)包流量的方式有多種,交換機配置端口鏡像后,RDMA數(shù)據(jù)包通過鏡像口抓取比較常見。

這里介紹一種通過容器中的tcpdump捕獲Mellanox RDMA數(shù)據(jù)包的方式。

1)首先拉取tcpdump-rdma的鏡像:

[root@localhost ~]# docker pull mellanox/tcpdump-rdma
Using default tag: latest
latest: Pulling from mellanox/tcpdump-rdma
74f0853ba93b: Pull complete
1f89d668986d: Pull complete
2d176f9a99da: Pull complete
Digest: sha256:3b7b1aa52cf8f9fe0e55845463fb4c4a4147eae1f6bddf5d82b8b08cf954b66c
Status: Downloaded newer image for mellanox/tcpdump-rdma:latest
docker.io/mellanox/tcpdump-rdma:latest


2)啟動tcpdump-rdma容器,通過把主機上的/dev/infiniband設(shè)備映射到容器中,同時把主機上的/tmp/rdma目錄也映射到容器中去:


[root@localhost ~]#docker run -it -v /dev/infiniband:/dev/infiniband -v /tmp/rdma:/tmp/rdma --net=host --privileged mellanox/tcpdump-rdma bash


3)進入容器后進行抓包,最后把pcap數(shù)據(jù)包導(dǎo)入到wireshark后就可以查看RoCE數(shù)據(jù)了:


[root@localhost /]# tcpdump -i mlx5_1 -s 0 -w /tmp/rdma/rdma_data1.pcap


4)打開wireshark查看數(shù)據(jù)包。

3faa3cf4-a30b-11ee-8b88-92fbcf53809c.png

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)傳輸
    +關(guān)注

    關(guān)注

    9

    文章

    1836

    瀏覽量

    64475
  • 網(wǎng)卡
    +關(guān)注

    關(guān)注

    3

    文章

    303

    瀏覽量

    27336
  • AI
    AI
    +關(guān)注

    關(guān)注

    87

    文章

    30106

    瀏覽量

    268399
  • RDMA
    +關(guān)注

    關(guān)注

    0

    文章

    76

    瀏覽量

    8925

原文標題:RDMA測試雜談

文章出處:【微信號:SDNLAB,微信公眾號:SDNLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    深入了解示波器

    深入了解示波器
    發(fā)表于 11-14 22:32

    專家開講:深入了解電池技術(shù) ──Part 1

    。筆者不會一一詳細介紹所有的電池技術(shù),只選擇一些常見或是值得認識的;而在接下來的專欄里,筆者將開始介紹電池分類、常見規(guī)格以及專業(yè)術(shù)語,如果你有特別想知道的電池技術(shù),歡迎留言!擴展閱讀:專家開講:深入了解
    發(fā)表于 08-18 09:33

    專家開講:深入了解電池技術(shù) ──Part 2-1

    專家開講:深入了解電池技術(shù) ──Part 2-1 我們在上一篇文章(參考:深入了解電池技術(shù)──Part 1)中談到將在這一系列的文章中探討各種電池
    發(fā)表于 08-18 09:35

    專家開講:深入了解電池技術(shù)──Part 2-2

    以下我們延續(xù)上一篇文章(深入了解電池技術(shù)──Part 2-1),繼續(xù)介紹各種與電池相關(guān)的專業(yè)術(shù)語。˙能量密度(energy density):以瓦特小時/每公升(Wh/L)或兆焦耳/每公升(MJ/L
    發(fā)表于 08-18 09:35

    專家開講:深入了解電池技術(shù)──Part 2-3

    開講:深入了解電池技術(shù) ──Part 1專家開講:深入了解電池技術(shù) ──Part 2-1專家開講:深入了解電池
    發(fā)表于 08-18 09:36

    專家開講:深入了解電池技術(shù)──Part 3

    資深工程師 Ivan Cowie 的「深入了解電池技術(shù)」專欄Part 3來啰!這次要介紹的是鉛酸電池(lead-acidbatteries)技術(shù)。鉛酸電池是在1859年由法國物理學(xué)家Gaston
    發(fā)表于 08-18 09:37

    專家開講:深入了解電池技術(shù)──Part 4 (堿性電池)

    擴展閱讀:專家開講:深入了解電池技術(shù) ──Part 1專家開講:深入了解電池技術(shù) ──Part 2-1專家開講:深入了解電池
    發(fā)表于 08-18 09:39

    專家開講:深入了解電池技術(shù)──Part 5 (碳鋅電池)

    Cowie)擴展閱讀:專家開講:深入了解電池技術(shù) ──Part 1專家開講:深入了解電池技術(shù) ──Part 2-1專家開講:深入了解電池
    發(fā)表于 08-18 09:42

    專家開講:深入了解電池技術(shù)──Part 6 (鋅空氣電池)

    `專家開講:深入了解電池技術(shù)──Part 6 (鋅空氣電池)資深工程師 Ivan Cowie 的電池專欄這一次要介紹的是鋅空氣電池(zinc-airbatteries;鈕扣型小電池,多應(yīng)用在助聽器
    發(fā)表于 08-18 10:14

    專家開講:深入了解電池技術(shù)──Part 7 (鋰亞硫酸氯電池)

    專家開講:深入了解電池技術(shù)──Part7 (鋰亞硫酸氯電池) 資深工程師 Ivan Cowie 的電池專欄這一次要介紹的是鋰亞硫酸氯電池(lithium thionylchloride
    發(fā)表于 08-18 10:20

    深入了解LabVIEW FPGA資料分享

    深入了解LabVIEW FPGA
    發(fā)表于 05-27 08:35

    深入了解示波器入門手冊

    深入了解示波器入門手冊
    發(fā)表于 03-27 17:43 ?241次下載
    <b class='flag-5'>深入了解</b>示波器入門手冊

    帶你深入了解示波器

    帶你深入了解示波器
    發(fā)表于 02-07 14:26 ?19次下載

    深入了解安全光柵

    深入了解安全光柵
    的頭像 發(fā)表于 06-25 13:53 ?1161次閱讀
    <b class='flag-5'>深入了解</b>安全光柵

    深入了解 GaN 技術(shù)

    深入了解 GaN 技術(shù)
    的頭像 發(fā)表于 12-06 17:28 ?6061次閱讀
    <b class='flag-5'>深入了解</b> GaN <b class='flag-5'>技術(shù)</b>