记一次PVE系统Intel-I219-LM网卡断流异常排查

Kaku Lv4

前言

最近在使用 PVE 主机内的 NAS 进行种子下载时,突然遇到了网络断流的问题。重启后问题依旧,只要 NAS 启动下载任务,过不了多久就会断网。插上显示器和键盘后排查发现,虚拟机状态、内存、磁盘 IO、负载一切正常,但就是 ping 不通网关。通过ip addrip link命令显示网卡状态正常,最后查看系统日志发现了大量的内核错误。本文记录了这次完整的排查过程和最终的解决方案。

美好周末正打算拿 NAS 下点番看,结果刚把任务挂上去,网络就断了。以为是服务器断电了,或者被拔网线了. 去看交换机上的指示灯,显示网卡指示灯狂闪。

问题现象

最初的现象是这样的:

  • NAS 虚拟机启动下载任务后,网络突然断开
  • 重启 PVE 主机后网络恢复,但只要 NAS 开始下载,问题就会重现
  • 物理连接正常,网卡指示灯状态正常
  • 虚拟机内部一切正常,CPU、内存、磁盘 IO 都在正常范围内
  • 无法 ping 通网关,外网访问全部中断
  • 网卡指示灯正常

最诡异的是,这个问题不是立即出现的。刚开机的时候一切正常,PVE 网络一切正常,只到 NAS 虚拟机启动,大概过了一两分钟,网络就会突然断掉。

日志分析

通过查看系统日志,发现了关键的错误信息:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sep 08 13:59:39 miniserver kernel: e1000e 0000:00:1f.6 eno1: Detected Hardware Unit Hang:
TDH <4c>
TDT <35>
next_to_use <35>
next_to_clean <4b>
buffer_info[next_to_clean]:
time_stamp <fffd6449>
next_to_watch <4c>
jiffies <fffd6ec0>
next_to_watch.status <0>
MAC Status <80083>
PHY Status <796d>
PHY 1000BASE-T Status <3800>
PHY Extended Status <3000>
PCI Status <10>

这个错误信息反复出现,时间间隔很短,明显是网卡硬件层面的问题。

日志显示这个错误从 13:59:39 开始,到 14:01:41 这段时间内反复出现,基本上每几秒钟就有一次。这说明网卡已经完全失去了响应能力,难怪网络会断。

硬件信息确认

首先确认网卡型号:

1
2
root@miniserver:~# lspci | grep Ethernet
00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (7) I219-LM (rev 10)

通过ip link命令查看网络接口状态:

1
2
3
4
5
6
root@miniserver:~# ip link
2: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master vmbr0 state UP mode DEFAULT group default qlen 1000
link/ether 00:4e:01:a5:1f:e0 brd ff:ff:ff:ff:ff:ff
altname enp0s31f6
7: vmbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000
link/ether 00:4e:01:a5:1f:e0 brd ff:ff:ff:ff:ff:ff

确认网卡型号为 Intel I219-LM,使用的是 e1000e 驱动。

这里有个小知识点:最开始我看到日志里的e1000e驱动时,还以为是 e1000 网卡,心想我的主板不是这个型号啊。后来查了资料才知道,e1000e驱动支持多款 Intel 千兆网卡,包括 I219 系列。这就像 NVIDIA 的驱动一样,一个驱动支持多个型号的显卡。

ip link的输出还能看到,我的 PVE 主机使用了网桥配置,eno1物理网卡被桥接到了vmbr0虚拟网桥上。这种配置在 PVE 中很常见,所有的虚拟机都通过vmbr0来共享物理网卡。

问题根因分析

网上去寻找相关问题 找到一堆论坛的帖子 问题指向了这个网卡本身的问题:

  • Intel I219-LM 网卡在 Linux 环境下的通病:这个系列的网卡(包括 I219-V 和 I219-LM)在 Linux 系统下存在驱动层面的 bug
  • “Hardware Unit Hang”错误:通常是由于网卡的高级电源管理功能(如 EEE - Energy Efficient Ethernet)与 Linux 内核驱动在特定条件下的兼容性问题
  • 触发条件:在网络负载较高或特定数据传输模式下容易触发,比如 P2P 下载、大量小文件传输等

感谢互联网上的各路大神。我在 Google 上搜索e1000e Hardware Unit Hang时,发现了一大堆相关的讨论。原来这个问题在 Proxmox 社区、Intel 官方论坛、还有各种 Linux 技术博客上都被广泛讨论过。

甚至 2016 年 Kernel.org Bugzilla 上就有 Bug Tracker 的 issue 了。但是直到今天也没修复这个问题。

这个问题高发于高负载场景下出现:

  • P2P 下载
  • 大量小文件传输
  • 网络负载突然变化
  • 网卡进入省电模式时

解决方案

临时解决方案

社区普遍有效的临时做法是关闭网卡的硬件卸载功能(以 root 身份执行):

1
ethtool -K eno1 gso off gro off tso off tx off rx off rxvlan off txvlan off sg off

命令与参数解释:

  • ethtool -K eno1:对接口 eno1 修改内核侧的卸载设置。
  • gso off:关闭通用分段卸载(Generic Segmentation Offload)。
  • gro off:关闭通用接收合并(Generic Receive Offload)。
  • tso off:关闭 TCP 分段卸载(TCP Segmentation Offload)。
  • tx off:关闭发送校验和卸载(Transmit checksum offload)。
  • rx off:关闭接收校验和卸载(Receive checksum offload)。
  • rxvlan off:关闭接收 VLAN 硬件处理。
  • txvlan off:关闭发送 VLAN 硬件处理。
  • sg off:关闭 scatter/gather(分散/聚集)功能。

为什么要关闭这些功能?
这些卸载功能本意是减轻 CPU 负担,但在某些驱动/固件组合下会触发网卡内部逻辑异常(如日志中的 Hardware Unit Hang)。关闭后让数据处理回退到软件路径,能避免触发网卡的固件/驱动缺陷,从而恢复稳定性。

注意事项:

  • 该设置为临时生效,重启后会丢失。需将对应命令加入持久化配置(例如 /etc/network/interfacespost-up,或使用 /etc/modprobe.d/ 禁用特定功能)以保证重启后依然生效。
  • 关闭硬件卸载后会增加 CPU 负载,但是对于 GbE 网卡和现代 CPU 的组合中,CPU 负载提高并不大。反而稳定性更为重要。
  • 有条件建议避雷 Intel I219 网卡。

永久化配置

为了确保重启后设置仍然有效,需要修改网络配置文件:

编辑/etc/network/interfaces文件,在eno1接口配置中添加post-up命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
auto lo
iface lo inet loopback

auto eno1
iface eno1 inet manual
post-up ethtool -K eno1 gso off gro off tso off tx off rx off rxvlan off txvlan off sg off

auto vmbr0
iface vmbr0 inet static
address 192.168.15.180/24
gateway 192.168.15.1
bridge-ports eno1
bridge-stp off
bridge-fd 0

source /etc/network/interfaces.d/*

保存后重启网络服务:

1
systemctl restart networking

或者直接重启 PVE 主机。

这里有个小细节需要注意:post-up命令一定要放在iface eno1下面,而不是iface vmbr0下面。因为ethtool是针对物理网卡eno1进行设置的,而不是虚拟网桥vmbr0。如果放错了位置,设置就不会生效。

效果验证

应用解决方案后,重新启动 NAS 虚拟机进行下载测试:

  • 连续运行 1 小时,未再出现”Hardware Unit Hang”错误
  • 网络连接稳定,未出现断流现象
  • 下载速度正常,虚拟机网络性能未受明显影响

观察系统日志,确认再也没有出现”Hardware Unit Hang”的错误信息。

总结

I219-LM 和 I219-V 可以和和断流王 I225-V 坐一桌了
还不如隔壁的小螃蟹
稍微好点的是 I219 只在 Linux 驱动下出问题,Windows 环境到没有问题。

参考资料

  • 标题: 记一次PVE系统Intel-I219-LM网卡断流异常排查
  • 作者: Kaku
  • 创建于 : 2025-09-08 15:17:21
  • 更新于 : 2025-09-08 16:30:22
  • 链接: https://www.kakunet.top/2025/09/08/记一次PVE系统Intel-I219-LM网卡断流异常排查/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论