PCEVA,PC绝对领域,探寻真正的电脑知识
打印 上一主题 下一主题
开启左侧

iWARP Vs RoCE - 两种RDMA网卡的横向对比

[复制链接]
跳转到指定楼层
1#
点击数:14286|回复数:15
本帖最后由 larryexchange 于 2016-7-14 18:05 编辑

RDMA网卡提供了高吞吐、低延迟的网络传输能力。早期仅用于高性能计算,如今随着各种分布式系统的流行,被越来越多的应用于企业和数据中心。有关RDMA的更多信息可以参考https://en.wikipedia.org/wiki/Remote_direct_memory_access

RDMA有三个实现版本,iWARP, RDMA over Converged Ethernet (RoCE)和Infiniband (IB)。由于融合网络架构的流行,iWARP和RoCE使用场景更加广泛。有关iWARP和RoCE两个各自优缺点的比较网上有很多。本帖侧重从用于SMB Direct (https://technet.microsoft.com/en-us/library/jj134210(v=ws.11).aspx)的使用角度比较的性能。

首先介绍些出场的两位选手:
-----------------------------------
  • 代表iWARP的是Chelsio的T520-CR

  • 代表RoCE的是Mellanox的ConnectX-3

两者都支持RDMA,且都是两个万兆接口。不了解这两个厂商的人有可能会误以为是寨厂。但事实上这两家的网卡比那些“大”牌(如Intel,Broadcom)要专业的多。拿iWARP来说,Intel也有网卡可以支持,但性能比Chelsio要弱。

然后介绍一下测试的环境:
--------------------------------
客户端:HP Z840工作站
  • CPU: E5-2683v3 2.0GHz x2 (28C/56T)
  • 内存: DDR4 512GB
  • 网卡1:Mellanox ConnectX-3 10Gb Dual Port
  • 网卡2:Chelsio T520-CR 10Gb Dual Port

服务器端:Intel R2208WT2服务器
  • CPU: E5-2689v3 2.0GHz (36C/72T)
  • 内存: DDR4 256GB
  • 硬盘:HGST SN100 1.6TB NVMe SSD x3
  • 网卡1:Mellanox ConnectX-3 10Gb Dual Port
  • 网卡2:Chelsio T520-CR 10Gb Dual Port

连接:将两块网卡的两个端口相互直连。目的是消除交换机的干扰因素。

为了测试两种网卡在SMB Direct下的性能表现,当然不希望存储成为瓶颈,进而影响两者的比较。所以这里我在服务器上用上了三块NVMe的SSD,并通过Windows Server自带的Storage Space做了一个简单卷。有关HGST SN100 NVMe的相关信息,可以参考我之前的帖子http://bbs.pceva.com.cn/thread-132601-1-1.html

测试工具和方法:
---------------------------
测试一:用微软官方的网络测试工具NTTTCP.EXE来测试网络的吞吐和对CPU的开销
  • 在服务器端运行 ntttcp.exe -r -m 8,*,192.168.25x.4 -rb 2M -a 16 -t 15
  • 在客户端运行 ntttcp.exe -s -m 8,*,192.168.25x.4 -l 128k -a 2 -t 15
测试二:用PowerShell命令Get-SMBMultichannelConnection来验证RDMA和SMB多通道是否起作用
测试三:运行Crystal Disk Mark观察吞吐
测试四:运行微软官方的磁盘测试工具DiskSpd对100GB大小的文件进行100%随机4KB读操作,关注IOPS和延迟并用系统自带性能监视器捕捉IOPS和RDMA活动

性能基准:
---------------------------
先来看看三块NVMe构成的目标磁盘卷的本地性能。

从上面的CDM测试结果可以看到目标卷的读写性能都完全超过了网快网卡的20Gb/s的吞吐,所以磁盘系统在这方面不会成为瓶颈。

另外为了对照之后的IOPS测试,我还预先看了磁盘系统4KB全盘随机读的性能和一致性表现。我们可以将这个作为基准,用于对比之后通过两块网卡访问该存储的测试。



从上面两张图可以看到目标存储系统本地访问可以达到114.7万的IOPS并且一致性也相当好。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
2#
larryexchange  楼主| 发表于 2016-7-14 16:00 | 只看该作者

iWARP的测试结果

本帖最后由 larryexchange 于 2016-7-14 16:37 编辑

测试一:用微软官方的网络测试工具NTTTCP.EXE来测试网络的吞吐和对CPU的开销
------------------------------
  • 在服务器端运行 ntttcp.exe -r -m 8,*,192.168.25x.4 -rb 2M -a 16 -t 15
  • 在客户端运行 ntttcp.exe -s -m 8,*,192.168.25x.4 -l 128k -a 2 -t 15
两个网络接口的测试结果如下:



从上面的结果可以看出两个接口的吞吐分别为1131.37MB/s和1129.78MB/s。CPU占用率分别是5.94%和4.69%。

测试二:验证SMB Direct是否正常工作
-----------------------------
首先从系统中将工作站上的两个Mellanox网络接口都禁用。并用PowerShell命令Get-SMBMultichannelConnection来验证RDMA是否起作用了。由于Windows Server本身支持SMB MultiChannel,所以虽然后面测试目标用了一个IP地址,但从下图也可以看出两个网络接口的两个通道同时都在起作用。

测试三:Crystal Disk Mark测试
------------------------------

从上面的测试结果可以看到,测试目标是\\192.168.253.4\e$,此时读写吞吐分别达到了2058MB/s和2278MB/s,基本上接近了测试一中所测得的两块网卡吞吐量的总和。可见SMB的多通道表现相当完美。

测试四:4KB随机读测试
----------------------------
运行微软官方的磁盘测试工具DiskSpd对100GB大小的文件进行100%随机4KB读操作,关注IOPS和延迟并用系统自带性能监视器捕捉IOPS和RDMA活动


从测试结果可以看到,通过SMB Direct,我们最多可以获得325,727 IOPS,平均延迟0.343ms,延迟的标准差为0.323ms。

从下面的性能曲线我们也可以更加直观的看出类似的结果。


测试过程中,通过性能监视器还特别关注了RDMA的活动情况,可见两个网络接口都在工作。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
3#
larryexchange  楼主| 发表于 2016-7-14 16:00 | 只看该作者

RoCE的测试结果

本帖最后由 larryexchange 于 2016-7-14 16:39 编辑

测试一:用微软官方的网络测试工具NTTTCP.EXE来测试网络的吞吐和对CPU的开销
------------------------------
  • 在服务器端运行 ntttcp.exe -r -m 8,*,192.168.25x.4 -rb 2M -a 16 -t 15
  • 在客户端运行 ntttcp.exe -s -m 8,*,192.168.25x.4 -l 128k -a 2 -t 15
两个网络接口的测试结果如下:



从上面的结果可以看出两个接口的吞吐分别为1129.72MB/s和1129.88MB/s。CPU占用率分别是3.78%和4.05%。

测试二:验证SMB Direct是否正常工作
-----------------------------
首先从系统中将工作站上的两个Chelsio网络接口都禁用。并用PowerShell命令Get-SMBMultichannelConnection来验证RDMA是否起作用了。由于Windows Server本身支持SMB MultiChannel,所以虽然后面测试目标用了一个IP地址,但从下图也可以看出两个网络接口的两个通道同时都在起作用。


测试三:Crystal Disk Mark测试
------------------------------

上面的测试结果是有点出乎我意料之外。开始怀疑是线缆的问题,不过同Chelsio的网卡兑换了线缆以后依然表现不好,而且从性能监视器还观察到两个RDMA网卡虽然都有活动,但并不太正常,似乎在频繁切换。当我禁用掉其中一个网口,仅留一个RoCE网口时,读写的吞吐反而都可以达到接口的上限。

测试四:4KB随机读测试
----------------------------
运行微软官方的磁盘测试工具DiskSpd对100GB大小的文件进行100%随机4KB读操作,关注IOPS和延迟并用系统自带性能监视器捕捉IOPS和RDMA活动



从测试结果可以看到,此时在SMB Direct下,我们最多可以获得238,004 IOPS,平均延迟0.47ms,延迟的标准差为2.896ms。

从下面的性能曲线我们也可以更加直观的看出波动很明显。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
4#
larryexchange  楼主| 发表于 2016-7-14 16:00 | 只看该作者

两种网卡的对比和小结。

本帖最后由 larryexchange 于 2016-7-14 17:38 编辑

通过比较测试结果,可以看出:
  • 单从网卡的基础吞吐性能来说,两者的吞吐能力几乎一样,Mellanox ConnectX-3的CPU占用更低些;
  • 两块网卡都可以支持RDMA;
  • Chelsio T520-CR在SMB Direct下的吞吐、IOPS和延迟以及一致性表现都完胜Mellanox ConnectX-3。不过这这样的比较其实算不上太公平,与Chelsio T5同代的是Mellanox的ConnectX-3 Pro和最新的Mellanox ConnectX-4。我在40Gb/s双口的ConnectX-3 Pro上没有遇到前面所见的SMB流量不稳定的情况。


5#
nighttob 发表于 2016-7-14 17:30 | 只看该作者
然而我这儿连CNA都没有
脑洞里有类似计划,但优先级很低
我还是更倾向于用电口的
6#
larryexchange  楼主| 发表于 2016-7-14 17:46 | 只看该作者
nighttob 发表于 2016-7-14 17:30
然而我这儿连CNA都没有
脑洞里有类似计划,但优先级很低
我还是更倾向于用电口的 ...

什么是CNA?
7#
nighttob 发表于 2016-7-14 17:51 | 只看该作者
Converged Network Adapter啊
8#
飞翔的企鹅 发表于 2016-7-14 17:54 | 只看该作者
这种高端货一般用在什么领域上?什么情况必须用到那么高级的东西?
9#
xudaiqing 发表于 2016-7-14 20:17 | 只看该作者
本帖最后由 xudaiqing 于 2016-7-14 20:23 编辑
飞翔的企鹅 发表于 2016-7-14 17:54
这种高端货一般用在什么领域上?什么情况必须用到那么高级的东西?

VSAN(virtual san)用一对效果很好,而且不涉及交换机的情况下价格还是很便宜的。

10#
红色狂想 发表于 2016-7-14 21:35 | 只看该作者
伦家好奇滴问一下,撸主是在自己家里部署着玩儿吗,就算无交换双机直通,成本也得两三万吧?
11#
vicdoo 发表于 2016-7-15 10:42 | 只看该作者
大神太多了,以至于我都没理解过来,别说消化了!
来自苹果客户端来自苹果客户端
12#
jerrytsao 发表于 2016-7-26 13:06 | 只看该作者
Larry大神, 小白求问你这个SMB Direct测试是属于NVMe Over Fabrics范畴内的应用吗, IB和Ethernet未来哪种适用范围会更广?




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
13#
larryexchange  楼主| 发表于 2016-7-27 00:32 | 只看该作者
jerrytsao 发表于 2016-7-26 13:06
Larry大神, 小白求问你这个SMB Direct测试是属于NVMe Over Fabrics范畴内的应用吗, IB和Ethernet未来哪种适 ...

我对NVMe over Fabric没有研究,但仅仅从你提供的图中看,他们不是一类,虽然两者使用到的很多的技术相同,比如RDMA,NVMe等等。

  • 但从存储介质来说,SMB Direct并不依赖NVMe, 普通SAS或SATA的SSD, 甚至HDD都可以走SMB Direct
  • 从功能上来说,NVMe over Fabric仅提供网络执行通用存储操作,而SMB Direct支持从Multichannel到Continouns Availablity (比HA可用性还高)的许多针对SMB优化功能
  • 从访问协议看,一个使用的是NVMe命令,另一个是走SMB 3.x协议
  • 从实用范围看,一个可以被看作本地块存储应用面广,另一个是文件存储,目前看支持应用只有Hyper-V, SQL或是作为NFS提供给其他虚拟化平台使用。

至于IB还是ETH,对于融合网卡/网络来说ETH当然是不二选择,但IB在特定场景下还是有其优势。新的Mellanox网卡都同时支持IB和ETH,而且其ETH相对老版本来说也已进步很多。
14#
jerrytsao 发表于 2016-7-27 01:18 | 只看该作者
larryexchange 发表于 2016-7-27 00:32
我对NVMe over Fabric没有研究,但仅仅从你提供的图中看,他们不是一类,虽然两者使用到的很多的技术相同 ...

感谢解惑, 一直对NVMe Over Fabrics与其他连接方式的区别感觉很模糊.
15#
jerrytsao 发表于 2016-7-27 12:56 | 只看该作者
本帖最后由 jerrytsao 于 2016-7-27 13:10 编辑

借大神帖再发一个刚找到的链接推荐给同存疑惑的人, 科普好文非常清楚展示了各种protocol的区别.

https://community.mellanox.com/docs/DOC-1466







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
16#
overthink 发表于 2016-7-27 16:49 | 只看该作者
10G能普及到桌面就好了,直接搞个SAN,台机都不用硬盘,现在1G的速度慢死
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部