J'ai remarqué depuis quelques jours que le même type de message se répète et je peux affirmer que rien n'a été intentionnellement changé (installé/désinstallé) pendant cette période.
voici un exemple de / var/log/kern.log message:
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
à partir du fichier journal complet - lorsque tous les messages de journal de ce type sont pris en compte - je peux conclure:
C'est le serveur de production dont je parle ici.
Comment résoudre ce problème, car le serveur de messagerie est en production et les pannes réseau d'une durée de 19 secondes que je ne peux pas tolérer?
ifconfig
. Si différent de zéro, il y a des problèmes avec le matériel (câble, NIC ou concentrateur/commutateur). Un câble Ethernet non fiable donnera également des erreurs dans ce domaine.ethtool
et assurez-vous que les paramètres réseau (duplex, etc.) correspondent à ceux du commutateur. Si vous n'êtes pas l'administrateur du commutateur, demandez à l'administrateur réseau de vous fournir les paramètres.En remarque, vous devez évaluer si vous avez besoin d'un contrôle de flux. Selon HP, il n'est nécessaire que pour les applications hautes performances: voir article HP sur l'utilisation du contrôle de flux
Voici ma solution. Ce problème se produit sur du matériel spécifique (sur une seule machine, 1 port sur 2 sur la carte réseau), toujours avec le pilote e1000e, depuis le noyau 3.9 ou plus. Ce fichier est pour centos7, va dans /etc/init.d/
et doit être activé avec chkconfig --add <name>
. Le nom de l'interface est codé en dur ... assurez-vous de le définir.
#!/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