eth0 NIC链接已中断,在内核日志中重复此消息


14

从几天前开始,我就注意到相同的重复消息出现了,我可以肯定地说,在此期间没有有意更改(安装/卸载)。

这是/var/log/kern.log消息的示例:

Mar 30 06:32:45 aurora kernel: [566322.867110] e1000e: eth0 NIC Link is Down

Mar 30 06:32:47 aurora kernel: [566325.313634] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

Mar 30 06:32:59 aurora kernel: [566337.632930] e1000e: eth0 NIC Link is Down

Mar 30 06:33:18 aurora kernel: [566356.543664] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None

Mar 30 11:05:47 aurora kernel: [582689.779752] e1000e: eth0 NIC Link is Down

Mar 30 11:05:50 aurora kernel: [582692.174337] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

从完整的日志文件中-当将所有此类日志消息都考虑在内时-我可以得出结论:

  • eth0每隔几个小时就会失败
  • eth0在第一种情况下失败两次,在第二种情况下失败19秒

我在这里谈论的是生产服务器。

由于邮件服务器处于生产状态并且我无法忍受19秒的网络故障,因此如何解决此问题?


1
到目前为止,您检查了什么?电缆是否正确连接且没有损坏?另一端的交换机是否也观察到链路断开?值得注意的是,检测到的链接在不同时间是不同的(流量控制在日志中是不同的)。也许自动协商失败了?如果强制使用1000Mbps FD Rx / Tx,问题是否会消失?
哈坎·林奎斯特

@HåkanLindqvist我没有选择检查电缆的位置,因为服务器不在我附近。我应该问服务器场技术人员检查一下吗?如何强制1000Mbps FD Rx / Tx?而且,关于流量控制在不同时间有所不同,这是问题吗?
米洛什Đakonović

链接“类型”随着时间的推移在变化,这向我表明,有些事情不是很正确,但是找到实际原因当然是一个完全独立的问题。问技术人员可能是个好主意。
哈坎·林奎斯特

1
您可以使用ethtool或mii-tool在服务器端检查自动协商状态等。您需要确保服务器的开关设置匹配。这听起来像是硬件问题-可能是服务器适配器,电缆或交换机。我建议查看交换机的状态以查看其发生的情况。
Paul Haldane 2014年

Answers:


10
  1. 检查导线上的错误,查看的输出中的“错误”字段ifconfig。如果非零,则表示硬件(电缆,NIC卡或集线器/交换机)有问题。不可靠的以太网电缆也会在此字段中产生错误。
  2. 无论步骤1如何,都可以更换以太网电缆。这是快速,便宜和容易的,并且只要您的链路以随机间隔上下时就应该这样做。
  3. 使用ethtool并确保网络设置(双工等)与交换机上的设置匹配。如果您不是交换机的管理员,请要求网络管理员为您提供设置。
  4. 如果交换机已启用流控制,则请确保在您的Linux机器上将其启用。否则,将其禁用。

作为附带说明,您应该评估是否需要流量控制。根据HP的说法,仅对于高性能应用程序是必需的:请参阅有关何时使用Flow Control的HP文章。


1
这是电线错误。在报告错误之后,服务器场技术人员的工作就完成了。
米洛什Đakonović

1
'ifconfig'显示错误?
Michael Martinez'Mar

1

这是我的解决办法。从内核3.9左右开始,始终在e1000e驱动程序上,在特定的硬件(在一台计算机上,只有NIC上2个端口中的1个)上发生此问题。该文件用于centos7,已进入/etc/init.d/并且必须通过启用chkconfig --add <name>。接口名称是硬编码的...请务必进行设置。

#!/bin/sh

### BEGIN INIT INFO
# Provides:          pm-e1000e-fix
# Required-Start:    $network
# Required-Stop:     $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 6
# Short-Description: workaround for e1000e issue
# Description:       e1000e fix
### END INIT INFO

################################################################################
# Give Usage Information                                                       #
################################################################################
usage() {
    echo "Usage: $0 start|restart" >&2
    exit 1
}

################################################################################
# E X E C U T I O N    B E G I N S   H E R E                                   #
################################################################################
command="$1"
shift

interface="eth0"

case "$command" in
    start)
        ethtool -K "$interface" gso off gro off tso off
        ;;
    restart)
        ethtool -K "$interface" gso off gro off tso off
        ;;
    *)
        usage
        ;;
esac
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.