¿Cuál es la causa de las altas interrupciones LOC?

17

Estoy viendo grandes picos en las interrupciones LOC: alrededor de 4 millones por segundo, ¿qué es exactamente la interrupción LOC, qué causaría estos picos y qué puedo hacer al respecto?

Aquí hay un gráfico de Munin que ilustra estos picos:

                    Gráfico de interrupción

Aquí está el gráfico de la CPU para el mismo período que muestra cómo se hace cargo por completo. Me gusta cómo el color hace que parezca que el servidor está en llamas durante estos períodos ...

                    Gráfico de la CPU

Este es un servidor Xeon dual quad-core que ejecuta Ubuntu 8.04. La versión del kernel informada por unamees 2.6.24-24-server.

Aquí está el contenido de / proc / interrupts

           CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
  0: 6930 6762 6633 6841 6760 6863 6692 6809 Temporizador de borde 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 Libata IO-APIC-edge
 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 Interrupciones no enmascarables
LOC: 260770889 233105051 191904989 121472332 107472778 118895615 157741363 115713984 Interrupciones locales del temporizador
RES: 767265318 1003071645 432052982 199027537 114757970 128486722 221935258 141439861 Reprogramación de interrupciones
CAL: 32376 26205 32414 26355 32453 26425 32399 26335 interrupciones de llamadas de función
TLB: 5325301 5240763 5025455 4999356 4944090 5044423 5050813 5004620 derribos TLB
TRM: 0 0 0 0 0 0 0 0 Interrupciones de eventos térmicos
SPU: 0 0 0 0 0 0 0 0 Interrupciones espurias
ERR: 0
SIG: 0

Referencias

Imágenes originales

Paul Dixon
fuente

Respuestas:

12

Es el proceso para administrar subprocesos de múltiples CPU. Consulte SMP Affinity y Proper Interrupt Handling en Linux para obtener las respuestas que busca sobre cómo reducirlo, pero básicamente es la forma en que el sistema maneja enmascarando las interrupciones que están siendo causadas por la necesidad de la CPU de alimentar más flujos de hilos o memoria y solo CPU0 puede asumir las interrupciones.

Cuanto mayor sea el valor, mejor será el enhebrado del sistema, y ​​esto es algo bueno.

Stephen Thompson
fuente
1
+1 y gracias por el enlace. ¿Debería preocuparme que mi gráfico de actividad de la CPU parece mostrar una actividad de "usuario" prácticamente nula durante esos picos?
Paul Dixon el
Se producen interrupciones todo el tiempo en el sistema, incluso con 0 actividades de usuario. Solo el proceso de lidiar con la memoria requiere muchas NMI (interrupciones no enmascarables), por lo que todo está bien.
Stephen Thompson el