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

14

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

Aqui está um gráfico munin que ilustra esses picos:

Gráfico de interrupção http://blog.dixo.net/irq.png

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

gráfico da CPU http://blog.dixo.net/cpu.png

Este é um servidor Xeon dual-core com Ubuntu 8.04. A versão do kernel relatada pelo 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   IO-APIC-edge      timer
  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   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   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   Non-maskable interrupts
LOC:  260770889  233105051  191904989  121472332  107472778  118895615  157741363  115713984   Local timer interrupts
RES:  767265318 1003071645  432052982  199027537  114757970  128486722  221935258  141439861   Rescheduling interrupts
CAL:      32376      26205      32414      26355      32453      26425      32399      26335   function call interrupts
TLB:    5325301    5240763    5025455    4999356    4944090    5044423    5050813    5004620   TLB shootdowns
TRM:          0          0          0          0          0          0          0          0   Thermal event interrupts
SPU:          0          0          0          0          0          0          0          0   Spurious interrupts
ERR:          0
MIS:          0
    
por Paul Dixon 19.11.2009 / 11:13

1 resposta

10

É o processo de gerenciamento de encadeamento de vários processadores. Veja Afinidade do SMP e tratamento adequado de interrupções no Linux para obter as respostas que você procura sobre como abaixá-lo, mas basicamente é a forma como o sistema manipula mascarando as interrupções que estão sendo causadas pelo fato de a CPU precisar receber mais fluxos de threads ou memória e somente o CPU0 ser capaz de executar as interrupções.

Quanto maior o valor, melhor será o encadeamento do sistema, e isso é bom.

    
por 19.11.2009 / 13:12