BŁĄD: miękka blokada - CPU # utknął na x sekund

33

Widziałem kilka raportów o błędach i pytań (o stosie wymiany i gdzie indziej) dotyczących dokuczania "BUG: soft lockup - CPU#<n> stuck for <dt>s!". Do tej pory nie znalazłem żadnych wskazówek, co robić lub próbować (raczej wskazówki, które znalazłem i których nie śledziłem, nie powstrzymały tego). Martwię się tym bardziej, ponieważ:

  1. wydaje się, że częstotliwość tych wydarzeń ostatnio powoli rośnie (ponad 700 miesięcznie),
  2. yum update i ponowne uruchomienie spowolniło trochę przez jakiś czas, ale widziałem, jak niektóre blokady ponownie się powtarzają,
  3. kilka procesów (jeśli nie całego hosta, trudno powiedzieć), z pewnością wszystkie moje interaktywne powłoki są zawieszone na pewien czas, kiedy to się dzieje,
  4. Nie jestem pewien, czy jest to powiązane, ale widzę wiele dzienników / komunikatów związanych z niemożnością aktualizacji zegara przez NTTP.

Oto fragment $(grep 'soft lockup' /var/log/messages*):

Mar 22 10:02:35 localhost kernel: BUG: soft lockup - CPU#15 stuck for 10s! [kjournald:1048]
Mar 22 10:02:36 localhost kernel: BUG: soft lockup - CPU#0 stuck for 10s! [postgres:5372]
Mar 22 10:02:36 localhost kernel: BUG: soft lockup - CPU#8 stuck for 10s! [postgres:5368]
Mar 22 10:02:37 localhost kernel: BUG: soft lockup - CPU#0 stuck for 10s! [postgres:5372]
Mar 22 10:02:37 localhost kernel: BUG: soft lockup - CPU#8 stuck for 10s! [postgres:5368]
Mar 22 10:02:38 localhost kernel: BUG: soft lockup - CPU#0 stuck for 10s! [postgres:5372]
Mar 22 10:02:38 localhost kernel: BUG: soft lockup - CPU#8 stuck for 10s! [postgres:5368]
Mar 22 10:02:39 localhost kernel: BUG: soft lockup - CPU#0 stuck for 10s! [postgres:5372]
Mar 22 10:02:39 localhost kernel: BUG: soft lockup - CPU#8 stuck for 10s! [postgres:5368]
Mar 22 10:02:40 localhost kernel: BUG: soft lockup - CPU#15 stuck for 25s! [swapper:0]
Mar 22 15:42:16 localhost kernel: BUG: soft lockup - CPU#8 stuck for 25s! [kjournald:1048]
Mar 22 18:22:13 localhost kernel: BUG: soft lockup - CPU#15 stuck for 10s! [postgres:21356]
Mar 22 18:22:20 localhost kernel: BUG: soft lockup - CPU#7 stuck for 10s! [java:8653]
Mar 22 18:22:20 localhost kernel: BUG: soft lockup - CPU#8 stuck for 72s! [kjournald:1048]
Mar 22 21:21:37 localhost kernel: BUG: soft lockup - CPU#12 stuck for 29s! [kjournald:1048]
Mar 22 21:22:07 localhost kernel: BUG: soft lockup - CPU#12 stuck for 27s! [kjournald:1048]
Mar 23 02:01:47 localhost kernel: BUG: soft lockup - CPU#8 stuck for 10s! [kblockd/8:276]
Mar 23 02:02:22 localhost kernel: BUG: soft lockup - CPU#8 stuck for 34s! [kblockd/8:276]

Dzieje się tak z przypadkowymi procesami i wydaje się dość dobrze rozłożone na 16 „rdzeniach” tego wirtualnego hosta.

Host jest instancją AWS EC2 „cc1.4xlarge”, z AMI o nazwie „EC2 CentOS 5.5 GPU HVM AMI (Driver 260.19.29) (ami-42a2532b)”. Wydaje się być zwirtualizowany za pomocą Xen.

cat /etc/redhat-releasedaje CentOS release 5.9 (Final). 'free'zgłasza 21G pamięci RAM.

Kierownikiem dmesgjest:

Linux version 2.6.18-348.3.1.el5 ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-54)) #1 SMP Mon Mar 11 19:39:25 EDT 2013
Command line: ro root=/dev/VolGroup00/LogVol00 rhgb quiet console=tty0 console=ttyS0,115200n8
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000010000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 00000000c0000000 (usable)
 BIOS-e820: 00000000fc000000 - 0000000100000000 (reserved)
 BIOS-e820: 0000000100000000 - 00000005dd800000 (usable)
DMI 2.4 present.
DMI: Xen HVM domU, BIOS 3.4.3-2.6.18 08/29/2012
ACPI: RSDP (v002    Xen                                ) @ 0x00000000000ea020
ACPI: XSDT (v001    Xen      HVM 0x00000000 HVML 0x00000000) @ 0x00000000fc0062b0
ACPI: FADT (v004    Xen      HVM 0x00000000 HVML 0x00000000) @ 0x00000000fc005ee0
ACPI: MADT (v002    Xen      HVM 0x00000000 HVML 0x00000000) @ 0x00000000fc005fe0
ACPI: SRAT (v001    Xen      HVM 0x00000000 HVML 0x00000000) @ 0x00000000fc0060c0
ACPI: SLIT (v001    Xen      HVM 0x00000000 HVML 0x00000000) @ 0x00000000fc006240
ACPI: HPET (v001    Xen      HVM 0x00000000 HVML 0x00000000) @ 0x00000000fc006270
ACPI: DSDT (v002    Xen      HVM 0x00000000 INTL 0x20090220) @ 0x(null)

Poniższy wykres przedstawia skumulowany liczyć z tych „miękkich” zawieszanie ponad ostatnim czasie (redline to kiedy robiłam ostatnią yum updatenastępuje reboot) łączna liczba miękkich blokad.

Poniżej przedstawiono histogram czas (jak długo jest gospodarzem zatrzymany) czas trwania histogramu.

Pierre D.
źródło
1
Mnóstwo możliwych powodów. Miałem to raz w instancji KVM. Przyczyną był sterownik sieci hostów (realtek), który zrobiłby coś przy dużych obciążeniach sieci, których nie oczekiwała wirtualizacja, i voila utknąłeś w procesorze na maszynach wirtualnych. Więc w zasadzie błąd w sterowniku sieci, który spowodował inne błędy w dalszej części drogi. Rozwiązaniem było przejście na inną wersję jądra (na hoście), która nie wyzwoliła tego konkretnego zachowania.
frostschutz
1
Otrzymaliśmy ten komunikat o błędzie, ponieważ niektóre maszyny wirtualne mają skonfigurowane więcej vcpus niż fizyczne procesory na nowym serwerze, dlatego przenieśliśmy nasz host Xen.
Jörg Ludwig

Odpowiedzi:

11

Mam również ten problem na Xen 4.2 z jądrem 3.6 i 3.8 (AlpineLinux).

Przeszukałem go i dodając do jądra clocksource = jiffies, naprawiłem to. Zamiast jiffies możesz także spróbować „pit”.

Istnieją również doniesienia o wyłączaniu stanów C w systemie BIOS .

Franz Bettag
źródło
4
Co robią te parametry jądra?
Burhan Ali,
2
Clocksource wydaje mi się dość oczywisty, a stany c to stany mocy procesora.
Franz Bettag
+1. Wyłączenie stanów c zadziałało dla mnie.
Andrew Ensley,
2

Miałem ten sam problem z moim Thinkpadem T520. Ale zamiast włamać się do jądra, zrobiłem coś prostszego. Po pierwsze używam Centos7 Zainstalowałem system podstawowy, wszystko działało dobrze. Potem dodałem GUOME GNOME później, kiedy zacząłem otrzymywać wyżej wymienione problemy. Zauważam, że wielu producentów skonfigurowanych do instalacji systemu Windows. Karta graficzna jest zwykle instalowana dla Win7 (NVIDIA OPTIMUS). Zresetujełem ją do zintegrowanego trybu graficznego i nie ma już zawieszania się / błędów. Jak to zrobić? Uruchom ponownie komputer Thinkpad, naciskając klawisz F1 lub niebieski przycisk myślenia, aby przejść do systemu BIOS. Przejdź do grafiki, wybierz grafikę zintegrowaną, a następnie F10, aby zapisać i wyjść. Istnieją 3 ustawienia dla tej karty: zintegrowana, dyskretna i NVIDIA OPTIMUS (tylko Win7?) Mam nadzieję, że to komuś oszczędza trochę czasu?

Pręt
źródło
Westchnienie, jak większość innych rzeczy, instalowanie rzeczy osobno jest nie-nie. Powrót do rozdętej wersji komputerowej z pakietem Office i innymi badziewami :(
killjoy