Co jest przyczyną wysokich przerw LOC?

17

Widzę ogromne skoki w przerwach LOC - około 4 milionów na sekundę, co dokładnie jest przerwaniem LOC, co spowodowałoby te skoki i co mogę z tym zrobić?

Oto wykres Munin ilustrujący te kolce:

                    Wykres przerwań

Oto wykres procesora dla tego samego okresu pokazujący, jak całkowicie przejmuje kontrolę. Podoba mi się, jak koloryt sprawia wrażenie, że serwer się pali w tych okresach ...

                    Wykres procesora

Jest to czterordzeniowy serwer Xeon z systemem Ubuntu 8.04. Zgłoszona przez jądro wersja unameto 2.6.24-24-serwer.

Oto zawartość / proc / interrupts

           CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
  0: 6930 6762 6633 6841 6760 6863 6692 6809 Zegar krawędzi IO-APIC
  1: 0 0 0 0 0 1 1 0 IO-APIC-edge i8042
  8: 3 2 4 3 7 5 6 3 IO-APIC-edge rtc
  9: 0 0 0 0 0 0 0 0 IO-APIC-fasteoi acpi
 12: 1 0 0 1 0 0 1 1 IO-APIC-edge i8042
 14: 22 20 22 24 27 24 25 15 Libata krawędzi IO-APIC
 15: 0 0 0 0 0 0 0 0 Libata krawędzi IO-APIC
 16: 50766012 50843554 50824664 50759980 50720894 50854422 50808772 50787944 IO-APIC-fasteoi ioc0
 17: 2551207 2584434 2572429 2564703 2546844 2593218 2574248 2563553 IO-APIC-fasteoi uhci_hcd: usb1, uhci_hcd: usb3, ehci_hcd: usb5
 18: 24 21 28 26 32 30 32 27 IO-APIC-fasteoi uhci_hcd: usb2, uhci_hcd: usb4
214: 978184354 978071466 978101515 978177161 978237290 978053391 978115491 978147157 PCI-MSI-edge eth0
NMI: 0 0 0 0 0 0 0 0 Przerwania niemaskowalne
LOC: 260770889 233105051 191904989 121472332 107472778 118895615 157741363 115713984 Lokalne przerwania timera
RES: 767265318 1003071645 432052982 199027537 114757970 128486722 221935258 141439861 Przerwania harmonogramu
CAL: 32376 26205 32414 26355 32453 26425 32399 26335 przerwania wywołania funkcji
TLB: 5325301 5240763 5025455 4999356 4944090 5044423 5050813 5004620 Strzelaniny TLB
TRM: 0 0 0 0 0 0 0 0 Przerwania zdarzenia termicznego
SPU: 0 0 0 0 0 0 0 0 Fałszywe przerwania
ERR: 0
MIS: 0

Bibliografia

Oryginalne obrazy

Paul Dixon
źródło

Odpowiedzi:

12

Jest to proces zarządzania wątkami wieloprocesorowymi. Zobacz powinowactwo SMP i właściwą obsługę przerwań w systemie Linux, aby uzyskać odpowiedzi na pytania, jak obniżyć go, ale w zasadzie to sposób, w jaki system obsługuje maskowanie przerwań powodowanych przez konieczność dostarczenia przez procesor większej ilości wątków lub pamięci i tylko CPU0 może przyjmować przerwania.

Im wyższa wartość, tym lepsze jest nawlekanie systemu i jest to dobra rzecz.

Stephen Thompson
źródło
1
+1 i dziękuję za link. Czy powinienem się martwić, że mój wykres aktywności procesora pokazuje prawie zerową aktywność „użytkownika” podczas tych skoków?
Paul Dixon,
Przerwania mają miejsce przez cały czas w systemie, nawet przy 0 aktywności użytkownika. Sam proces radzenia sobie z pamięcią wymaga wielu NMI (przerwań niemaskowalnych), więc wszystko jest w porządku.
Stephen Thompson,