博主使用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 断流问题”