Was ist die Ursache für Interrupts mit hohem LOC?

17

In LOC-Interrupts treten enorme Spitzen auf - etwa 4 Millionen pro Sekunde. Was genau ist der LOC-Interrupt, was würde diese Spitzen verursachen und was kann ich dagegen tun?

Hier ist ein Munin-Diagramm, das diese Spitzen veranschaulicht:

                    Grafik unterbrechen

Hier ist das CPU-Diagramm für denselben Zeitraum, das zeigt, wie es vollständig übernimmt. Mir gefällt, wie die Färbung den Eindruck erweckt, dass der Server in diesen Zeiträumen in Flammen steht ...

                    CPU-Grafik

Dies ist ein Dual-Quad-Core-Xeon-Server, auf dem Ubuntu 8.04 ausgeführt wird. Die von gemeldete Kernel-Version unameist 2.6.24-24-server.

Hier ist der Inhalt von / proc / interrupts

           CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
  0: 6930 6762 6633 6841 6760 6863 6692 6809 IO-APIC-Flankentimer
  1: 0 0 0 0 0 1 1 0 IO-APIC-Kante 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-Kante i8042
 14: 22 20 22 24 27 24 25 15 IO-APIC-Edge-Libata
 15: 0 0 0 0 0 0 0 0 IO-APIC-Edge-Libata
 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
 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 Nicht maskierbare Interrupts
LOC: 260770889 233105051 191904989 121472332 107472778 118895615 157741363 115713984 Lokale Timer-Interrupts
RES: 767265318 1003071645 432052982 199027537 114757970 128486722 221935258 141439861 Interrupts neu planen
CAL: 32376 26205 32414 26355 32453 26425 32399 26335 Funktionsaufruf-Interrupts
TLB: 5325301 5240763 5025455 4999356 4944090 5044423 5050813 5004620 TLB-Abschüsse
TRM: 0 0 0 0 0 0 0 0 Thermische Ereignisunterbrechungen
SPU: 0 0 0 0 0 0 0 0 Störunterbrechungen
ERR: 0
MIS: 0

Verweise

Ursprüngliche Bilder

Paul Dixon
quelle

Antworten:

12

Es ist der Prozess zum Verwalten von Multi-CPU-Threading. Unter SMP-Affinität und ordnungsgemäße Interrupt-Behandlung in Linux finden Sie die Antworten, die Sie benötigen, um die Interrupts zu reduzieren. Grundsätzlich handelt es sich jedoch um die Art und Weise, wie das System die Interrupts maskiert CPU0 kann die Interrupts übernehmen.

Je höher der Wert, desto besser ist das Threading des Systems, und das ist eine gute Sache.

Stephen Thompson
quelle
1
+1 und danke für den Link. Sollte ich mir Sorgen machen, dass mein Diagramm der CPU-Aktivität während dieser Spitzen so gut wie keine Benutzeraktivität anzeigt?
Paul Dixon
Unterbrechungen finden ständig auf dem System statt, auch wenn keine Benutzeraktivität vorliegt. Nur der Prozess des Umgangs mit Speicher erfordert viele NMI (nicht maskierbare Interrupts), sodass alles in Ordnung ist.
Stephen Thompson