Qual è la causa degli interrupt LOC elevati?


17

Sto vedendo picchi enormi negli interrupt LOC: circa 4 milioni al secondo, che cos'è esattamente l'interrupt LOC, che cosa potrebbe causare questi picchi e cosa posso fare al riguardo?

Ecco un grafico Munin che illustra questi picchi:

                    Grafico di interruzione

Ecco il grafico della CPU per lo stesso periodo che mostra come subentra completamente. Mi piace come la colorazione fa sembrare che il server sia in fiamme durante questi periodi ...

                    Grafico della CPU

Questo è un doppio server Xeon quad-core che esegue Ubuntu 8.04. La versione del kernel segnalata da unameè 2.6.24-24-server.

Ecco il contenuto di / proc / interrupt

           CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
  0: 6930 6762 6633 6841 6760 6863 6692 6809 Timer fronte-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 IO-APIC-edge
 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 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 ethernet PCI-MSI et0
NMI: 0 0 0 0 0 0 0 0 Interrupt non mascherabili
LOC: 260770889 233105051 191904989 121472332 107472778 118895615 157741363 115713984 Interrupt del timer locale
RES: 767265318 1003071645 432052982 199027537 114757970 128486722 221935258 141439861 Riprogrammazione degli interrupt
CAL: 32376 26205 32414 26355 32453 26425 32399 26335 interruzione chiamata funzione
TLB: 5325301 5240763 5025455 4999356 4944090 5044423 5050813 5004620 abbattimenti TLB
TRM: 0 0 0 0 0 0 0 0 Interruzioni di eventi termici
SPU: 0 0 0 0 0 0 0 0 Interruzioni spurie
ERR: 0
MIS: 0

Riferimenti

Immagini originali

Risposte:


12

È il processo per la gestione del threading multi-CPU. Vedi Affinità SMP e corretta gestione degli interrupt in Linux per le risposte che cerchi su come abbassarlo, ma fondamentalmente è il modo in cui il sistema gestisce il mascheramento degli interruzioni causati dalla CPU che deve essere alimentata da più flussi di thread o memoria e solo CPU0 è in grado di accettare gli interrupt.

Maggiore è il valore, migliore è il threading del sistema e questa è una buona cosa.


1
+1 e grazie per il link. Dovrei essere preoccupato che il mio grafico dell'attività della CPU sembra mostrare praticamente zero attività "utente" durante questi picchi?
Paul Dixon,

Le interruzioni avvengono continuamente sul sistema, anche con 0 attività dell'utente. Solo il processo di gestione della memoria richiede molti NMI (interrupt non mascherabili), quindi tutto va bene.
Stephen Thompson,
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.