eth0 NIC Link jest w dół powtarzający się komunikat w dzienniku jądra

14

Od kilku dni zauważyłem ten sam powtarzający się rodzaj wiadomości i mogę z całą pewnością stwierdzić, że w tym okresie nic nie zostało celowo zmienione (zainstalowane / odinstalowane).

Oto przykład wiadomości /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

z pełnego pliku dziennika - po uwzględnieniu wszystkich wiadomości dziennika tego rodzaju - liczę:

  • eth0 zawodzi co kilka godzin
  • eth0 zawodzi w pierwszym przypadku przez dwa, a w drugim przez 19 sekund

Mówię tutaj o serwerze produkcyjnym.

Jak rozwiązać ten problem, skoro serwer pocztowy jest produkowany, a awarie sieci trwające 19 sekund nie mogę tolerować?

Miloš Đakonović
źródło
1
Co sprawdziłeś do tej pory? Czy kabel jest prawidłowo podłączony i w nienaruszonym stanie? Czy przełącznik na drugim końcu również obserwuje opadanie łącza? Warto zauważyć, że wykryty link różni się w różnych momentach (kontrola przepływu różni się w twoim dzienniku). Może autonegocjacja kończy się niepowodzeniem? Czy problem zniknie, jeśli wymusisz 1000 Mb / s FD Rx / Tx?
Håkan Lindqvist
@ HåkanLindqvist Nie mam możliwości sprawdzenia kabla, ponieważ serwer nie jest fizycznie blisko mnie. Czy jest to coś, o co powinienem poprosić o sprawdzenie technologii farm serwerów? Jak wymusić 1000 Mb / s FD Rx / Tx? A czy kwestia kontroli przepływu różni się w różnych momentach?
Miloš Đakonović
Zmieniający się z czasem „typ” linku sugeruje mi, że coś jest nie tak, ale znalezienie rzeczywistej przyczyny to oczywiście osobne pytanie. Zapytanie personelu technicznego może być dobrym pomysłem.
Håkan Lindqvist
1
Możesz użyć ethtool lub mii-tool, aby sprawdzić status automatycznych negocjacji itp. Po stronie serwera. Musisz upewnić się, że przełącznik skonfigurowany na serwerze jest zgodny. Brzmi to jak problem sprzętowy - może to być adapter serwera, kabel lub przełącznik. Sugeruję, aby spojrzeć na status przełącznika, aby zobaczyć, co jego zdaniem się dzieje.
Paul Haldane

Odpowiedzi:

10
  1. sprawdź błędy w przewodzie, spójrz na pole „błędy” na wyjściu ifconfig. Jeśli niezerowa, występują problemy ze sprzętem (kabel, karta sieciowa lub koncentrator / przełącznik). Nierzetelny kabel Ethernet również da błędy w tym polu.
  2. wymień kabel Ethernet, niezależnie od kroku 1. Jest to szybki, tani i łatwy i powinien być wykonywany za każdym razem, gdy twoje łącze przesuwa się w górę iw dół w losowych odstępach czasu.
  3. użyj ethtooli upewnij się, że ustawienia sieciowe (dupleks itp.) są zgodne z ustawieniami przełącznika. Jeśli nie jesteś administratorem przełącznika, poproś administratora sieci o podanie ustawień.
  4. jeśli przełącznik ma włączoną kontrolę przepływu, upewnij się, że jest włączony na twoim Linux-ie. W przeciwnym razie wyłącz to.

Na marginesie, powinieneś ocenić, czy potrzebujesz kontroli przepływu. Według HP jest to konieczne tylko w przypadku aplikacji o wysokiej wydajności: patrz artykuł HP na temat kiedy należy używać kontroli przepływu

Michael Martinez
źródło
1
To były błędy drutów. Technologie farmy serwerów wykonały zadanie po tym, jak zgłosiłem błędy.
Miloš Đakonović
1
„ifconfig” wyświetlał błędy?
Michael Martinez,
1

Oto moja poprawka. Ten problem występuje na określonym sprzęcie (na jednym komputerze tylko 1 z 2 portów na karcie sieciowej), zawsze ze sterownikiem e1000e, ponieważ jądro 3.9 lub podobne. Ten plik dotyczy centos7, wchodzi /etc/init.d/i musi być włączony za pomocą chkconfig --add <name>. Nazwa interfejsu jest zakodowana na stałe ... pamiętaj, aby ją ustawić.

#!/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
Piotr
źródło