在前面的文章中,我们提到了测试主要分为3个内容:
一是测试iperf和iperf3两个工具的实用性,目前的结论是iperf可以支持多CPU、多线程,整体测试结果比iperf3要高一些(还得是华为,OpenEuler打流能到37 Gbps),但如果要测得最高性能,还是要多次测试,没有固定值。
二是对比不同的操作系统性能,目前测试了Windows操作系统和常用的Linux操作系统(Debian阵营还是要原装,Ubuntu是真不行)。在RHEL阵营中,OpenEuler性能最高,至少可以达到37.2 Gbps;Debian阵营,原生系统性能最高,至少可以达到33.3 Gbps。同时再次证实了CPU配置和测试结果也有密切关系。
三是测试转发设备。虽然我们测试时是采用的虚拟机直连的方式,但是还是要验证这种组网下是否受VMWare ESXi的vSwitch的转发性能影响。
今天就来测试一下ESXi vSwitch的转发性能。
目前默认的vSwitch0上面连接了比较多的资源,包括管理网络Management Network和虚拟机网络VM Network,在VM Network中更是连接了95台虚拟机。为了减轻虚拟机连接数的影响,我们在“网络”下的“虚拟交换机”页面,点击“添加标准虚拟交换机”,新增一个名为iperf的vSwitch,移除上行链路,安全选项全部接受。
然后在“网络”下的“端口组”页面,点击“添加端口组”,新增一个名为iperf的端口组,虚拟交换机选择到刚刚新建的iperf,其它选项保持默认。
然后选择好本次测试使用的8台主机,分别是2台CentOS 7.9、2台OpenEuler 22.03、2台Ubuntu 18.04和2台Debian 11.3。为了相对公平,本次测试将所有的虚拟机配置都调整为1个插槽的4核CPU,内存均配置为4 GB,网卡均使用VMXNET 3类型(VMWare ESXi中,不同的虚拟网卡性能竟然能相差三倍!)。
分别增加一个网卡,连接到iperf端口组。
然后按照iperf互联IP配置新网卡的IP地址。
CentOS 7.9
先测试CentOS的转发性能,最大值稍有提升,是6个TCP线程的27.7 Gbps,从之前的结果可以看出,这个数据是CentOS的极限,但不是vSwitch的极限。
OpenEuler 22.03
然后是OpenEuler系统,最大值稍有提升,是3个TCP线程的41.9 Gbps。相比于之前8核CPU测得的37.7 Gbps,本次4核CPU的成绩非常不错。
Ubuntu 18.04
然后是Ubuntu系统,可能是配置降低的原因,最大值稍有下降,最大值是5个TCP线程的29.4 Gbps。
Debian 11.3
最后是Debian系统,最大值是4个TCP线程的37.9 Gbps。
vSwitch
参考业内设备性能的标准文件RFC2544(网络互连设备的基准测试方法),对于有多个端口的DUT(devices under test,被测设备)设备,在执行测试时,需要将一半端口指定为“输入端口”,另一半端口指定为“输出端口”。
在本测试中,我们已经连接了8个端口,我们使用8台虚拟机中的一半作为打流服务器,另一半作为打流客户端,同时进行打流测试,测试1分钟,查看流量总和。
第一次测试,CentOS系统之间的带宽为15.4 Gbps,OpenEuler系统之间的带宽为34.2 Gbps,Ubuntu系统之间的带宽为5.45 Gbps,Debian系统之间的带宽为24.5 Gbps,总带宽为79.55 Gbps。
第二次测试,CentOS系统之间的带宽为13.6 Gbps,OpenEuler系统之间的带宽为27.8 Gbps,Ubuntu系统之间的带宽为6.21 Gbps,Debian系统之间的带宽为22.4 Gbps,总带宽为70 Gbps。
第三次测试,CentOS系统之间的带宽为15.6 Gbps,OpenEuler系统之间的带宽为29.5 Gbps,Ubuntu系统之间的带宽为6.12 Gbps,Debian系统之间的带宽为22.6 Gbps,总带宽为73.82 Gbps。
注意到Ubuntu系统比较拉胯,我们把打流服务器和客户端角色对调一下。
第四次测试,CentOS系统之间的带宽为20.5 Gbps,OpenEuler系统之间的带宽为10.8 Gbps,Ubuntu系统之间的带宽为33.0 Gbps,Debian系统之间的带宽为14.4 Gbps,总带宽为78.7 Gbps。
四次测试结果从高到低分别为79.55 Gbps、78.7 Gbps、73.82 Gbps和70 Gbps,平均值为75.5 Gbps,我们有理由相信vSwitch的转发性能达到75 Gbps是完全可能的。