服务器变得无法访问并自行恢复(很可能是networking问题)

我有一个奇怪的问题,我坐在我的工作场所的服务器(这是一个NAT后面,如果这是重要的)。 问题是,在某些时候,它变得无法达到,然后再次回来,通常在几秒钟内,有时持续1分钟。 它不会重新启动,它不会崩溃。 它变得无法访问。 在此期间,我无法进入,也无法访问在机器上运行的任何应用程序(它正在运行几个Rails应用程序,所以它们也变得无法访问)。 我检查了dmesg,看到了这些行 –

[ 4.958074] ADDRCONF(NETDEV_UP): eth0: link is not ready [ 5.040476] ADDRCONF(NETDEV_UP): eth1: link is not ready [ 5.175624] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX [ 5.177207] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready 

几行后,我看到有关networking接口类似的东西 –

 [1195777.544167] igb: eth0 NIC Link is Down [1195780.962943] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX 

它看起来像一个networking问题。 / var / log / messages不显示任何有趣的东西。 我不知道如何debugging。 任何线索可能是什么? 我应该在这里检查什么东西? 谢谢!

这类问题通常不会产生大量的日志消息。 你已经发现了重要的两个消息,它们显示接口正在closures。 这些可以通过拔下以太网电缆并将其插回来生成。

它可能是网卡和路由器之间的一个糟糕的电缆。 我的第一步(一次完成一个)将是:

  • 更换连接到eth0的电缆,看看是否能解决问题。
  • 重新configurationnetworking接口,使eth0上当前的stream量在eth1上,反之亦然。 (需要重新启动networking并进行电缆交换。)如果问题出现,则说明网卡出现故障。
  • validation上游设备及其电源的状态。 如果它失去了权力,或者失败了,你可以看到这种行为。
  • 运行netstat -iifconfig并检查错误计数。 通常,他们应该是0或单个数字。 高载波或帧错误可能表示双工不匹配。 双面打印不匹配可以通过上传然后下载大文件来validation。 大的速度差异伴随着错误计数的增加表明链路上的不匹配。 有线调制解调器通常具有不同的上传和下载带宽,因此本地传输对于此testing更为有效。

我使用的一个工具是mtr 。 我使用像mtr -i 15 -n google.com这样的命令来监视连接。 考虑使用您的ISP的服务器之一,而不是google.com。 它可以在报告模式下批量运行。 如果问题在服务器的上游,则输出应该帮助确定问题的发生位置。

BillThor有一些很棒的build议。 如果他的解决scheme都不能解决这个问题,自动协商可能是责备(尽pipe不太可能)。 尝试强制连接的速度和双工(说明RedHat,但其他发行版相似)

编辑/ etc / sysconfig / network-scripts / ifcfg-eth0:

ETHTOOL_OPTS="speed 100 duplex full autoneg off"

然后重新启动界面:

/etc/init.d/network restart