Quelle est la cause des interruptions LOC élevées?

17

Je vois d'énormes pics d'interruptions LOC - environ 4 millions par seconde, quelle est exactement l'interruption LOC, qu'est-ce qui provoquerait ces pics et que puis-je faire?

Voici un graphique Munin illustrant ces pics:

                    Graphique d'interruption

Voici le graphique du CPU pour la même période montrant comment il prend complètement le relais. J'aime la façon dont la coloration donne l'impression que le serveur est en feu pendant ces périodes ...

                    Graphique CPU

Il s'agit d'un serveur Xeon quadricœur double exécutant Ubuntu 8.04. La version du noyau rapportée par unameest 2.6.24-24-server.

Voici le contenu de / proc / interrupts

           CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
  0: 6930 6762 6633 6841 6760 6863 6692 6809 Temporisateur de bord IO-APIC
  1: 0 0 0 0 0 1 1 0 Bord IO-APIC i8042
  8: 3 2 4 3 7 5 6 3 rtc bord IO-APIC
  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 bord IO-APIC
 15: 0 0 0 0 0 0 0 0 Libata bord IO-APIC
 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 Interruptions non masquables
LOC: 260770889 233105051 191904989 121472332 107472778 118895615 157741363 115713984 Interruptions de temporisation locale
RES: 767265318 1003071645 432052982 199027537 114757970 128486722 221935258 141439861 Interruptions de replanification
CAL: 32376 26205 32414 26355 32453 26425 32399 26335 interruptions d'appel de fonction
TLB: 5325301 5240763 5025455 4999356 4944090 5044423 5050813 5004620 fusillades TLB
TRM: 0 0 0 0 0 0 0 0 Interruptions d'événements thermiques
SPU: 0 0 0 0 0 0 0 0 Interruptions parasites
ERR: 0
MIS: 0

Les références

Images originales

Paul Dixon
la source

Réponses:

12

C'est le processus de gestion du threading multi-CPU. Voir SMP Affinity and Proper Interrupt Handling in Linux pour les réponses que vous cherchez sur la façon de le réduire, mais en gros, c'est la façon dont le système gère le masquage des interruptions qui est causée par le fait que le processeur doit être alimenté plus de flux de threads ou de mémoire et seulement CPU0 pouvant prendre en charge les interruptions.

Plus la valeur est élevée, meilleur est le filetage du système, et c'est une bonne chose.

Stephen Thompson
la source
1
+1 et merci pour le lien. Dois-je craindre que mon graphique d'activité du processeur semble afficher une activité "utilisateur" pratiquement nulle pendant ces pics?
Paul Dixon
Les interruptions ont lieu tout le temps sur le système, même avec 0 activité utilisateur. Le processus de gestion de la mémoire nécessite beaucoup de NMI (interruptions non masquables), donc tout va bien.
Stephen Thompson,