系统级测试在测什么?
兼容性
全业务场景下的性能
测试环境搭建
测试环境一:
NVIDIA(Mellanox) 网卡自带寄存器、BER、FEC错误符号分布等,方便直接测试光模块和网卡的兼容性。(Mellanox Infiniband卡切换IB/Ethernet模式攻略:http://t.csdnimg.cn/35nyY)
测试环境二:
应该没客户这么玩,纯好奇试了试,好使:
NVIDIA(Mellanox)网卡和交换机同时发PRBS,网卡和交换机都能读出BER。
PRBS模式对异常定位比较友好。
出现适配问题时,可以用HCB板测试网卡/交换机的输出电信号幅度和抖动等,然后加个光CDR用采样示波器测光模块光眼图进行质量分析。可通过网卡配套指令确认和修改网卡/光模块各类配置参数以帮助进一步定位。
测试环境三:
Ethernet用iperf;
IB用ib_xxx发包工具
测试环境四:
下图是Ethernet蛇形打流(Daisy Chain);
IB业务不需要蛇形打流。
求解答
1)200G光模块配合200G网卡,当带宽离200G差异较大时,可通过调线程解决,为什么?
-----------2024年10月2日更新--------------
软件单线程发包频率一定,通过调整同时发包的线程数量来调节带宽大小。
很多客户告诉我,适配只看能否linkup和收发包。他们不关心带宽,带宽是网络层的测试概念,物理层的光模块测好物理层该测的指标就行,
-----------2024年10月2日更新--------------
物理层表现确实是光模块的基础,但是报文和带宽等最终结果的表现也离不开光模块。
2)光模块在网卡上带宽不到100Gb/s;但用流量仪测,200G流量能打满。
-----------2024年10月2日更新--------------
不一定完全是模块问题,取决于软件发流机制(问答,探测等)影响。废话文学,还是不知道具体原理。
3)单看打流,iperf、流量仪、RDMA_Write_BW_Test 发的数据包的具体区别是什么?
虽然想把兼容性评估全面,也实在不想无脑堆工作量。
-----------2024年10月2日更新--------------
Iperf发送UDP和TCP包,具体能到的带宽取决于CPU性能,以及操作系统的tcp/udp协议栈的实现。流量仪用FPGA发包,带宽轻松打满。
想知道具体发的是什么包,可以用VIAVI流量仪抓取.cap文件,然后用网络封包分析软件Wireshark(前称Ethereal)打开。
以下以400G光模块测试为例:
截图是交换机的抓包文件解析,Wireshark安装包及流量仪和交换机的抓包文件在以下链接:
https://download.csdn.net/download/HUJING_XIN/89834924
流量仪和交换机打流的区别
由此可见交换机在8058字节帧长下,流量很小,相对于标准满流量400G小很多,不能完全模拟全业务场景。至于交换机打流是否可以通过调节线程数量和帧大小来达到标准满流量的400G,有待验证,等有空验了再来更新。也欢迎各路大神在评论区留下答案。
【3分钟彻底理解线程、并行和并发-哔哩哔哩】 https://b23.tv/WKV3DCX
UDP和TCP介绍:
【一条视频讲清楚TCP协议与UDP协议-什么是三次握手与四次挥手-哔哩哔哩】 https://b23.tv/ZOIiNE0
TCP(Transmission Control Protocol):提供可靠的、面向连接的数据传输服务,确保数据的可靠性、顺序性和完整性。TCP适用于对数据传输质量要求较高的场景,如文件传输、网页浏览等。
UDP(User Datagram Protocol):提供无连接的数据传输服务,不保证数据的可靠性,也不保证数据的顺序性和完整性。UDP适用于实时性要求较高、对数据传输质量要求不那么严格的场景,如音视频传输、在线游戏等。
不同的协议层对数据包有不同的称谓:
传输层叫做段(segment);
网络层叫做数据报(datagram);
链路层叫做帧(frame)。
段,数据报、帧对于光模块而言差别不大,不影响对光模块的测试(不管段/数据报/帧格式是什么,满速率就行)。为啥呢?
不管上层是如何封装的,对于物理层就是一堆0和一堆1, 为了防止长连0或者长连1,引入了8B/10B、64B/66B等格式,简单讲就是遇到长0插个1,遇到长1插个0;方便判断信号是长1或长0还是模块死机了。到这里有了新的疑问,IEEE定义帧长最大是15181,为啥流量仪可以设置到10000,有的客户让测到9000呢?
iperf
iperf是一个网络性能测试工具,可以测试网络带宽、延迟、数据包丢失率等指标。通过iperf测试可以帮助用户评估网络的性能,为网络调优提供参考。iperf支持TCP(默认)和UDP(命令行加上-u -b 10G(指定UDP和指定测试带宽为10G,不然默认带宽很小))两种协议,可以在客户端和服务端之间进行测试。用户可以通过命令行参数来设置测试的参数,例如测试的时长、并发连接数、数据传输速率等。在使用iperf进行测试时,用户需要同时启动客户端和服务端程序,并且在客户端上指定服务端的IP地址和端口号。测试完成后,程序会输出测试结果,包括带宽、延迟、数据包丢失率等指标。200G光模块测试部分结果如下。
iperf2是多线程工具
iperf3是单线程工具(可以开多窗口并行测试),默认测试上传速度,测试下载速度需在命令行后加上-R;
UDP协议损耗更小,测出来的带宽更接近实际带宽
Tips
①ethtool:ethernet tool以太网诊断和调整工具,不适用于IB网卡。
②IB网卡不能直接与以太网交换机互通。截图内容从下往上看;
未完待续......