前言
大家好,我是JACK,本篇是服务器硬件基础系列第五篇,上一篇我们讲了存储,这篇我们聊网卡,结合实际测试经验来讲。
一、网卡是什么
网卡(NIC,Network Interface Card)负责服务器的网络通信,是服务器连接外部网络的核心硬件。
服务器网卡和普通PC网卡相比:
- 带宽更高,常见10GbE、25GbE、100GbE
- 支持多端口,一块网卡可以有2个、4个甚至更多网口
- 支持Bond(链路聚合),多个网口合并提升带宽和冗余
- 部分高端网卡支持RDMA,大幅降低网络延迟
- 更注重长时间高负载下的稳定性
二、网卡功能验证
拿到服务器先确认网卡识别和链路状态:
# 确认网卡是否被系统识别
[root@localhost ~]# lspci | grep -i network
0000:01:00.0 Network controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE
0000:01:00.1 Network controller: Huawei Technologies Co., Ltd. HNS GE/10GE/25GE
# 查看网卡接口列表
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
5: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500
用ethtool查看网卡速率和链路状态:
[root@localhost ~]# ethtool eth0
Settings for eth0:
Supported ports: [ FIBRE ]
Speed: 25000Mb/s
Duplex: Full
Auto-negotiation: on
Port: FIBRE
Link detected: yes
# Speed确认速率是否达标,Link detected确认链路是否连通
重点关注字段:
| Speed | 链路速率,确认是否达到标称值 |
| Duplex | 双工模式,Full为全双工 |
| Link detected | yes表示链路正常,no表示链路断开 |
三、Bond链路聚合
Bond是将多个网口绑定在一起的技术,可以提升带宽和冗余。服务器测试中常用的有Bond1和Bond4两种模式。
Bond1(Active-Backup,主备模式):
- 同一时间只有一个网口在工作,另一个备用
- 主网口故障时自动切换到备用网口
- 带宽不叠加,仍然是单口速率
- 主要用途是保障网络冗余,防止单点故障
Bond4(802.3ad LACP,链路聚合模式):
- 多个网口同时工作,带宽叠加
- 比如两个25GbE口做Bond4,理论带宽达到50GbE
- 同时也有冗余保障,一个口故障不影响整体
- 需要交换机也支持LACP协议配合
简单对比:
| Bond1 | 不叠加 | ✅ | 对冗余要求高,带宽要求不高 |
| Bond4 | 叠加 | ✅ | 既要高带宽又要冗余 |
查看Bond状态:
[root@localhost ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1
Bonding Mode: IEEE 802.3ad Dynamic link aggregation
MII Status: up
Active Aggregator Info:
Aggregator ID: 1
Number of ports: 2
Slave Interface: eth0
MII Status: up
Speed: 25000 Mbps
Duplex: full
Slave Interface: eth1
MII Status: up
Speed: 25000 Mbps
Duplex: full
# 两个口都是up,说明Bond4正常工作
四、网卡测试方法
网卡性能测试使用iperf/iperf3工具,测试实际网络带宽。
1. iperf3基本测试
iperf3需要一台服务器作为服务端,另一台作为客户端:
# 服务端启动
[root@server ~]# iperf3 -s
———————————————————–
Server listening on 5201
———————————————————–
# 客户端发起测试
[root@client ~]# iperf3 -c 192.168.1.100 -t 60
Connecting to host 192.168.1.100, port 5201
[ 5] local 192.168.1.101 port 45678 connected to 192.168.1.100 port 5201
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-60.00 sec 172 GBytes 24.7 Gbits/sec 0 sender
[ 5] 0.00-60.00 sec 172 GBytes 24.7 Gbits/sec receiver
# 25GbE网卡实测带宽24.7Gbps,达成率接近99%,正常
2. 多线程测试(提升带宽利用率)
[root@client ~]# iperf3 -c 192.168.1.100 -t 60 -P 4
# -P 4 表示4个并行线程,更充分利用带宽
[ ID] Interval Transfer Bitrate
[SUM] 0.00-60.00 sec 175 GBytes 25.1 Gbits/sec
# 多线程跑满25GbE
3. Bond4双口聚合测试
[root@client ~]# iperf3 -c 192.168.1.100 -t 60 -P 8
# Bond4两个口叠加,理论50GbE,用多线程测试
[SUM] 0.00-60.00 sec 336 GBytes 48.3 Gbits/sec
# 实测48.3Gbps,接近理论值50GbE,正常
4. 双向测试
[root@client ~]# iperf3 -c 192.168.1.100 -t 60 –bidir
# 同时测试上行和下行带宽
iperf3输出重点关注:
| Bitrate | 实际带宽,是否达到标称值 |
| Retr | 重传次数,不为0说明网络有丢包 |
| Transfer | 总传输数据量 |
五、常见问题及排查
1. 链路不通
# 第一步:确认链路状态
[root@localhost ~]# ethtool eth0 | grep "Link detected"
Link detected: no
# Link detected为no,说明链路断开
# 第二步:检查网线和光模块
# 确认网线/光纤是否插好,光模块是否匹配
# 第三步:查看dmesg日志
[root@localhost ~]# dmesg | grep -i hns3
[ 3.512345] hns3 0000:01:00.0: fail to initialize hw
# 有报错说明是驱动或固件问题
2. 速率不达标
# 确认协商速率是否正确
[root@localhost ~]# ethtool eth0 | grep Speed
Speed: 1000Mb/s
# 25GbE网卡只协商到1GbE,检查交换机端口配置和光模块是否匹配
# 查看网卡驱动版本
[root@localhost ~]# ethtool -i eth0
driver: hns3
version: 1.9.40.0
firmware-version: 1.8.0.12
# 确认驱动和固件版本是否需要更新
3. Bond4带宽叠加不生效
# 查看Bond状态
[root@localhost ~]# cat /proc/net/bonding/bond0
# 确认两个slave口都是up状态
# 如果只有一个口active,检查交换机是否开启LACP
4. iperf测试有丢包
# iperf3显示Retr不为0
[root@client ~]# iperf3 -c 192.168.1.100 -t 60
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-60.00 120 GBytes 17.2 Gbits/sec 245 sender
# Retr=245,有重传,检查网线质量和交换机端口
六、测试时需要记录的数据
| 链路速率 | ethtool确认是否达到标称值 |
| 单口带宽 | iperf3实测带宽,达成率是否正常 |
| Bond4聚合带宽 | 是否接近两口带宽之和 |
| 重传次数 | Retr是否为0 |
| 链路状态 | Link detected是否为yes |
七、总结
网卡测试核心关注三点:链路正常、速率达标、Bond配置正确。Bond1用于冗余保障,Bond4用于带宽叠加,根据实际需求选择合适的模式。遇到速率不达标,优先检查交换机配置和光模块匹配情况。
下一篇我们聊电源详解,包括冗余电源测试和实操经验,敬请期待!
网硕互联帮助中心





评论前必须登录!
注册