eth0 NIC Link è Down ripetendo il messaggio nel log del kernel


14

Ho notato da pochi giorni che si verifica lo stesso tipo di messaggi ripetuti e posso affermare positivamente che nulla è stato intenzionalmente cambiato (installato / disinstallato) in quel periodo.

ecco un esempio del messaggio /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

dal file di registro completo - quando si tiene conto di tutti i messaggi di registro di questo tipo - posso concludere:

  • eth0 fallisce ogni poche ore
  • eth0 fallisce nel primo caso per due e nel secondo per 19 secondi

È il server di produzione di cui sto parlando qui.

Come risolvere questo problema, poiché il server di posta è in produzione e non riesco a tollerare guasti di rete della durata di 19 secondi?


1
Cosa hai controllato finora? Il cavo è collegato correttamente e non è danneggiato? L'interruttore sull'altra estremità osserva anche il collegamento in discesa? Vale la pena notare che il collegamento rilevato è diverso in momenti diversi (il controllo del flusso differisce nel registro). Forse l'autonegotiation fallisce? Il problema scompare se si forza FD Rx / Tx a 1000 Mbps?
Håkan Lindqvist,

@ HåkanLindqvist Non ho la possibilità di controllare il cavo, poiché il server non è fisicamente vicino a me. È qualcosa che dovrei chiedere al tecnico del server farm di controllare? Come posso forzare 1000 Mbps FD Rx / Tx? E, riguardo al controllo di flusso che è diverso in momenti diversi, è questo problema?
Miloš Đakonović,

Il "tipo" di collegamento che cambia nel tempo mi suggerisce che qualcosa non è del tutto corretto, ma trovare la causa effettiva è ovviamente una domanda completamente separata. Chiedere al personale tecnico potrebbe essere una buona idea.
Håkan Lindqvist,

1
È possibile utilizzare ethtool o mii-tool per verificare lo stato della negoziazione automatica ecc. Sul lato server. Devi assicurarti che lo switch del tuo server sia configurato per corrispondere. Sembra un problema hardware: potrebbe essere un adattatore per server, un cavo o uno switch. Suggerisco di guardare lo stato dell'interruttore per vedere cosa pensa stia accadendo.
Paul Haldane,

Risposte:


10
  1. controlla errori sul filo, guarda il campo "errori" nell'output di ifconfig. Se diverso da zero, ci sono problemi con l'hardware (cavo, scheda NIC o hub / switch). Un cavo Ethernet inaffidabile genererà errori anche in questo campo.
  2. sostituire il cavo Ethernet, indipendentemente dal passaggio 1. Questo è veloce, economico e facile e dovrebbe essere fatto ogni volta che il collegamento va su e giù a intervalli casuali.
  3. utilizzare ethtoole assicurarsi che le impostazioni di rete (duplex, ecc.) corrispondano a quelle sullo switch. Se non sei l'amministratore dello switch, chiedi all'amministratore di rete di fornirti le impostazioni.
  4. se lo switch ha il controllo di flusso abilitato, assicurati che sia abilitato sulla tua scatola Linux. Altrimenti, disabilitalo.

Come nota a margine, è necessario valutare se è necessario il controllo del flusso. Secondo HP, è necessario solo per applicazioni ad alte prestazioni: consultare l' articolo HP su Quando utilizzare il controllo del flusso


1
Si sono verificati errori di filo. Le cose tecniche della server farm hanno funzionato dopo che ho segnalato errori.
Miloš Đakonović,

1
"ifconfig" mostrava errori?
Michael Martinez,

1

Ecco la mia soluzione. Questo problema si verifica su hardware specifico (su una macchina solo 1 su 2 porte sulla scheda NIC), sempre con il driver e1000e, dal kernel 3.9 in poi. Questo file è per centos7, entra /etc/init.d/e deve essere abilitato con chkconfig --add <name>. Il nome dell'interfaccia è hardcoded ... assicurati di impostarlo.

#!/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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.