解决Intel网卡提示 Detected Hardware Unit Hang 断流问题

2020-12-31 / 无评论

博主使用esxi6.7虚拟机系统安装lede X64作为软路由,直通了WAN口的网卡,随之而来的便是当上行流量过大时,会造成断流现象,并在lede中报类似以下的错误,并提示 Reset adapter unexpectedly

[118943.768245] e1000e 0000:00:19.0 eth1: Detected Hardware Unit Hang:
 [118943.768245]   TDH                  <45>
 [118943.768245]   TDT                  <50>
 [118943.768245]   next_to_use          <50>
 [118943.768245]   next_to_clean        <43>
 [118943.768245] buffer_info[next_to_clean]:
 [118943.768245]   time_stamp           <101c48d04>
 [118943.768245]   next_to_watch        <45>
 [118943.768245]   jiffies              <101c4970f>
 [118943.768245]   next_to_watch.status <0>
 [118943.768245] MAC Status             <80283>
 [118943.768245] PHY Status             <792d>
 [118943.768245] PHY 1000BASE-T Status  <7800>
 [118943.768245] PHY Extended Status    <3000>
 [118943.768245] PCI Status             <10>
 [118944.780015] e1000e 0000:00:19.0 eth1: Reset adapter unexpectedly

经过多方的查阅,e1000e带的部分Intel网卡驱动存在缺陷,在直通状态下,默认是开启了网卡的tso功能,导致这一问题,而在非直通虚拟网卡的情况下,按照官方说法,是默认关闭了tso功能,并不会出现断流问题

我们可以通过手动关闭网卡的tso功能来解决该问题,虽然会有一定的性能损失。

使用ethtool工具禁用tso

ethtool -K eth1 tso off

其中eth1是对应网卡的名称

但是在重启lede系统后,tso又是默认打开状态,每次去执行这个命令很不方便,可以通过新建自启动脚本,达到开机自动关闭

1.新建e1000e文件

cd /etc/init.d
vi e1000e

2.编辑保存以下内容

#!bin/sh /etc/rc.common
START=99
start(){
  ethtool -K eth1 tso off >/tmp/e1000e.log
}

3.给脚本添加权限

chmod +x e1000e

4.创建软链接

/etc/init.d/e1000e enable

下次启动时,就可以自动关闭网卡tso功能了

无回应:“解决Intel网卡提示 Detected Hardware Unit Hang 断流问题”

发表评论

电子邮件地址不会被公开。 必填项已用*标注