Ubuntu 24.04 100G 网卡 固件升级、驱动安装与直连测速
依赖工具安装
sudo apt update && sudo apt install -y wget gcc make dkms pciutils net-tools ethtool iperf3 libssl3 libelf-dev
固件升级
https://network.nvidia.com/support/firmware/mlxup-mft/
wget https://www.mellanox.com/downloads/firmware/mlxup/4.30.0/SFX/linux_x64/mlxup -O mlxup
chmod +x mlxup
检测网卡与当前固件版本
sudo ./mlxup --query
- 输出需显示两张 MCX455A 网卡,记录
Device路径、Current FW Version和Recommended FW Version
升级固件并重启
# 自动下载并升级两张网卡固件(勿断电,约 5 分钟)
sudo ./mlxup -u
# 升级完成后重启系统
sudo reboot
4. 验证固件升级成功
sudo ./mlxup --query
- 两张网卡
Status均显示Up to date即为成功
安装 Mellanox OFED 以太网驱动(适配 Ubuntu 24.04)
# 下载 OFED 6.9(Ubuntu 24.04 专用)
wget https://content.mellanox.com/ofed/MLNX_OFED-24.10-3.2.5.0/MLNX_OFED_LINUX-24.10-3.2.5.0-ubuntu24.04-x86_64.tgz
# 解压文件
tar zxvf MLNX_OFED_LINUX-24.10-3.2.5.0-ubuntu24.04-x86_64.tgz
cd MLNX_OFED_LINUX-24.10-3.2.5.0-ubuntu24.04-x86_64
# 安装驱动(--without-fw 跳过固件重复升级,--force 适配内核)
sudo ./mlnxofedinstall --without-fw --force
- 提示
Installation completed successfully即为安装成功
启动驱动并设置自启
# 重启驱动服务
sudo /etc/init.d/openibd restart
# 设置开机自启
sudo systemctl enable openibd
IB 模式切换为以太网模式
查看当前网卡模式
# 列出 Mellanox 网卡设备路径(记录如 /dev/mst/mt4115_pciconf0、/dev/mst/mt4115_pciconf1)
sudo mst status
# 查询第一张网卡模式(替换为实际设备路径)
sudo mlxconfig -d /dev/mst/mt4115_pciconf0 query | grep LINK_TYPE
# 查询第二张网卡模式(替换为实际设备路径)
sudo mlxconfig -d /dev/mst/mt4115_pciconf1 query | grep LINK_TYPE
LINK_TYPE=1:IB 模式(需切换)LINK_TYPE=2:以太网模式(跳过切换)
切换为以太网模式
# 卸载驱动模块(避免占用网卡)
sudo /etc/init.d/openibd stop # 若未安装驱动,此命令可能报错,忽略即可
sudo rmmod mlx5_core mlx5_ib mlx5_netdev # 卸载相关模块
# 切换第一张网卡(替换设备路径)
sudo mlxconfig -d /dev/mst/mt4115_pciconf0 set LINK_TYPE=2
# 切换第二张网卡(替换设备路径)
sudo mlxconfig -d /dev/mst/mt4115_pciconf1 set LINK_TYPE=2
- 执行后输入
y确认应用配置,完成后重启系统:
sudo reboot
3. 验证模式切换成功
sudo mlxconfig -d /dev/mst/mt4115_pciconf0 query | grep LINK_TYPE
sudo mlxconfig -d /dev/mst/mt4115_pciconf1 query | grep LINK_TYPE
- 两张网卡均显示
LINK_TYPE=2即为成功
网卡直连配置
用 100G 直连线连接两张网卡,配置静态 IP 并优化网络参数。
配置静态 IP(Ubuntu 24.04 推荐)
network:
version: 2
renderer: networkd
ethernets:
enp2s0: # 第一张网卡名称
addresses:
- 192.168.10.1/24 # 静态 IP(同一网段)
dhcp4: no
dhcp6: no
enp3s0: # 第二张网卡名称
addresses:
- 192.168.10.2/24 # 同一网段另一 IP
dhcp4: no
dhcp6: no
3. 应用配置并验证连通性
# 应用 netplan 配置
sudo netplan apply
# 验证 IP 配置
ip addr show enp2s0
ip addr show enp3s0
# ping 测试(无丢包即为直连成功)
ping 192.168.10.2 -c 10
- 成功输出:
10 packets transmitted, 10 received, 0% packet loss
4. 网卡参数优化(提升测速上限)
# 关闭两张网卡节能模式
sudo ethtool -C enp2s0 rx-usecs 100 tx-usecs 100
sudo ethtool -C enp3s0 rx-usecs 100 tx-usecs 100
# 开启巨帧(MTU=9000,两端需一致)
sudo ip link set enp2s0 mtu 9000
sudo ip link set enp3s0 mtu 9000
# 验证速率协商(确认为 100G)
sudo ethtool enp2s0 | grep "Speed:"
sudo ethtool enp3s0 | grep "Speed:"
- 输出
Speed: 100000Mb/s表示协商成功
六、100G 测速(iperf3)
通过 iperf3 测试网卡直连带宽,需分别启动服务器端和客户端(同一主机内测试)。
1. 启动 iperf3 服务器端(绑定第一张网卡)
打开终端 1,执行:
iperf3 -s -B 192.168.10.1
- 成功启动提示:
-----------------------------------------------------------
Server listening on 5201
-----------------------------------------------------------
2. 启动 iperf3 客户端(绑定第二张网卡)
打开终端 2,执行(8 并行流提升满速概率):
iperf3 -c 192.168.10.1 -B 192.168.10.2 -t 10 -P 8
- 参数说明:
-c:指定服务器 IP-B:绑定客户端网卡 IP-t 10:测试时长 10 秒-P 8:8 个并行流
查看测速结果
- 理想输出(Ubuntu 24.04 下带宽 ≥ 95 Gbps):
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 112 GBytes 96.3 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 112 GBytes 96.2 Gbits/sec receiver
双向测速(可选)
测试反向带宽(服务器发送,客户端接收):
iperf3 -c 192.168.10.1 -B 192.168.10.2 -t 10 -P 8 -R
测速带宽过低(<80 Gbps)
- 关闭虚拟化占用:
sudo rmmod kvm_intel(临时关闭,测试后可恢复) - 重新协商速率:
sudo ethtool -s enp2s0 speed 100000 duplex full autoneg on
Did you like of something here?
I'll appreciate it!
BBB123
CCC234
(C:)