数日前から同じ種類のメッセージが繰り返し発生していることに気づきましたが、その期間に意図的に変更(インストール/アンインストール)されたものは何もないと断言できます。
これが/ 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
完全なログファイルから-この種類のすべてのログメッセージをカウントすると-私は結論付けることができます:
ここで私が話しているのは本番サーバーです。
この問題を解決するには、メールサーバーが稼働中であり、19秒間のネットワーク障害が許容できないためです。
ifconfig
の出力の「errors」フィールドを確認してください。ゼロ以外の場合、ハードウェア(ケーブル、NICカード、またはハブ/スイッチ)に問題があります。信頼できないイーサネットケーブルを使用すると、このフィールドにもエラーが発生します。ethtool
を使用して、ネットワーク設定(デュプレックスなど)がスイッチの設定と一致していることを確認してください。スイッチの管理者でない場合は、ネットワーク管理者に設定を提供するよう依頼してください。補足として、フロー制御が必要かどうかを評価する必要があります。 HPによると、これは高性能アプリケーションでのみ必要です。フロー制御を使用するタイミングに関するHPの記事 を参照してください
これが私の修正です。この問題は、特定のハードウェア(NICの2つのポートのうち1つのみのマシン)で発生します。カーネル3.9以降では、常にe1000eドライバーが使用されます。このファイルは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