Qual é a causa de altas interrupções de LOC?

17

Estou vendo picos enormes nas interrupções do LOC - cerca de 4 milhões por segundo, o que exatamente é a interrupção do LOC, o que causaria esses picos e o que posso fazer sobre isso?

Aqui está um gráfico de Munin que ilustra esses picos:

                    Gráfico de interrupção

Aqui está o gráfico da CPU para o mesmo período, mostrando como ele assume completamente. Gosto de como a coloração faz parecer que o servidor está pegando fogo durante esses períodos ...

                    Gráfico da CPU

Este é um servidor Xeon quad-core duplo, executando o Ubuntu 8.04. A versão do kernel relatada por unameé 2.6.24-24-server.

Aqui está o conteúdo de / proc / interrupts

           CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
  0: 6930 6762 6633 6841 6760 6863 6692 6809 Temporizador IO-APIC-edge
  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 0 Interrupções não mascaráveis
LOC: 260770889 233105051 191904989 121472332 107472778 118895615 157741363 115713984 Interruptor do timer local
RES: 767265318 1003071645 432052982 199027537 114757970 128486722 221935258 141439861 Reagendar interrupções
CAL: 32376 26205 32414 26355 32453 26425 32399 26335 interrupções de chamada de função
TLB: 5325301 5240763 5025455 4999356 4944090 5044423 5050813 5004620 suspensões de TLB
TRM: 0 0 0 0 0 0 0 0 0 Evento térmico interrompe
SPU: 0 0 0 0 0 0 0 0 0 Interrupções espúrias
ERR: 0
MIS: 0

Referências

Imagens originais

Paul Dixon
fonte

Respostas:

12

É o processo para gerenciar o encadeamento de várias CPUs. Consulte Afinidade SMP e manipulação adequada de interrupções no Linux para obter as respostas que você procura sobre como reduzi-lo, mas basicamente é a maneira como o sistema manipula mascarar as interrupções que estão sendo causadas pelo fato de a CPU precisar alimentar mais fluxos de threads ou memória e apenas CPU0 sendo capaz de assumir as interrupções.

Quanto maior o valor, melhor o encadeamento do sistema e isso é uma coisa boa.

Stephen Thompson
fonte
1
+1 e obrigado pelo link. Deveria me preocupar que meu gráfico de atividade da CPU pareça mostrar praticamente zero atividade de "usuário" durante esses picos?
227 Paul Dixon
Interrupções ocorrem o tempo todo no sistema, mesmo com 0 atividade do usuário. Apenas o processo de lidar com a memória requer muita NMI (interrupções não mascaráveis), então tudo está bem.
21416 Stephen Thompson