- 参考5.5中的方法,获取被测服务器和对接服务器上的目标网卡的各网口名称。
- 执行nmcli con show命令,查看各网口对应的NAME信息,以双口网卡型号为例,假设实际名称分别为enp7s0f0和enp7s0f1。
- 配置bond模式1(主备模式),bond名称为bond_test:
modprobe bonding
nmcli con add con-name bond_test connection.interface-name bond_test ipv4.method static ipv4.addresses 19.19.1.1/24 type bond bond.options "mode=1,miimon=100"
nmcli con add type bond-slave master bond_test ifname enp7s0f0
nmcli con add type bond-slave master bond_test ifname enp7s0f1
nmcli con up bond_test
配置成功后,执行dmesg | tail –n 20,确认bonding生效,执行ethtool bond_test命令,确认bond的link状态,有结果1。
- ping包测试:在对接服务器上ping被测服务器IP ,在被测服务器上,拔掉第一个网口的线缆,等待20s左右,在对接服务器上停止ping包,并记录丢包的个数。
插上第一个网口线缆,然后在对接服务器上继续ping被测服务器IP ,拔掉第二个网口的线缆,等待约20s,在对接服务器上停止ping包,记录丢包的个数后插上第二个网口的线缆;有结果2。
- iperf测试:将被测服务器端作为服务端,对接的服务器作为客户端,在被测服务器上启动8个iperf Server进程,客户端启动8个Client进程,每个进程使用8个线程数:(为了更好的hash效果,以保证性能测试时得到更高的吞吐量)
iperf -c <Tester_IP> -i n1 -t 60 -p <port> -P 8
记录各进程的测试结果及累加结果,有结果3。
- 将mode=1改为分别修改为mode=0、4,并执行步骤4~5。(mode0需要将交换机配置静态链路聚合;mode4需要将交换机配置动态链路聚合;mode1和mode 5和6不需要配置交换机),有结果1。
可以通过nmtui或下述命令修改:
nmcli dev mod bond_test bond_options "mode=0"
systemctl restart network
对于mode 4,使用layer3+4负载均衡方式
nmcli dev mod bond_test bond_options "mode=802.3ad, xmit_hash_policy=layer3+4"
systemctl restart network
测试mode 0时,需分别测试TCP和UDP的吞吐量,UDP测试推荐用最大MTU测试( Mode 0采用轮询策略发包,会导致接收端乱序,实际性能甚至可能低于单口,UDP对乱序不敏感,但是对包长敏感,使用最大MTU,测试结果更容易接近物理带宽)。
- 需分别在ARM服务器平台和x86服务器平台重复以上步骤进行测试。