亲爱的朋友和大学
我们有 rhel 7.2 版本的虚拟机 -3.10.0-327.el7.x86_64
我们注意到以下消息(来自/var/log/messages
)
e1000 0000:02:01.0 eth0: Detected Tx Unit Hang#012 Tx Queue <0>#012 TDH <45>#012 TDT
从 dmesg 中我们得知
[21519947.519425] e1000 0000:02:01.0 eth0: Detected Tx Unit Hang
Tx Queue <0>
TDH <45>
TDT <45>
next_to_use <26>
next_to_clean <45>
buffer_info[next_to_clean]
time_stamp <6032d5901>
next_to_watch <47>
jiffies <6032d75ab>
next_to_watch.status <0>
[21519949.521583] e1000 0000:02:01.0 eth0: Detected Tx Unit Hang
Tx Queue <0>
TDH <45>
TDT <45>
next_to_use <26>
next_to_clean <45>
buffer_info[next_to_clean]
time_stamp <6032d5901>
next_to_watch <47>
jiffies <6032d7d7e>
next_to_watch.status <0>
[21519949.811366] e1000 0000:02:01.0 eth0: Reset adapter
[21519949.855081] e1000: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None
我们尝试搜索上述问题的解决方案,并看到有关以下修复的帖子
设置以下内容/etc/sysctl.conf
,然后重新启动机器
pcie_aspm=offet ( https://serverfault.com/questions/193114/linux-e1000e-intel-networking-driver-problems-galore-where-do-i-start )
或者
ethtool -K eth0 tso off gso off
或者
更改了网络适配器VMNETX3.
等等 ....
所以我们对正确的解决方案感到困惑
请建议解决我们问题的正确方法是什么?
答案1
这是旧内核的一个已知问题(Bugzilla 1288237)。该修复已向后移植到较新的 kernsla 中,并根据以下安全建议进行跟踪:
该问题被认为是由以下上游提交引入的: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b4ded8327fea82b53fcec39e0845011246d020f4
对于早于 3.10.0-514.el7 的内核,一些用户报告说,当通过 ethtool 禁用受影响接口上的 Scatter-Gather 卸载引擎时,该行为就会停止发生:
# ethtool -K <interface> sg off
有关更多信息,请查看 Red Hat 的知识库文章:https://access.redhat.com/solutions/2070703
一般来说,由于 RHEL 提供了稳定的 ABI 和 API 接口,运行过时的软件很少有任何好处,应该更新到正在运行的主要版本(例如 RHEL 7、RHEL &)的最新补丁版本。