J'ai déplacé un serveur d'une carte mère à une autre en raison d'une défaillance du contrôleur de disque.
Depuis lors, j'ai remarqué qu'en permanence 25% de l'un des cœurs va toujours à l'IRQ, mais je n'ai pas réussi à savoir quel est l'IRQ responsable de cela.
Le noyau est un Linux 2.6.18-194.3.1.el5 (CentOS). mpstat -P ALL
spectacles:
18:20:33 CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s
18:20:33 all 0,23 0,00 0,08 0,11 6,41 0,02 0,00 93,16 2149,29
18:20:33 0 0,25 0,00 0,12 0,07 0,01 0,05 0,00 99,49 127,08
18:20:33 1 0,14 0,00 0,03 0,04 0,00 0,00 0,00 99,78 0,00
18:20:33 2 0,23 0,00 0,02 0,03 0,00 0,00 0,00 99,72 0,02
18:20:33 3 0,28 0,00 0,15 0,28 25,63 0,03 0,00 73,64 2022,19
C'est le / proc / interrupts
cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
0: 245 0 0 7134094 IO-APIC-edge timer
8: 0 0 49 0 IO-APIC-edge rtc
9: 0 0 0 0 IO-APIC-level acpi
66: 67 0 0 0 IO-APIC-level ehci_hcd:usb2
74: 902214 0 0 0 PCI-MSI eth0
169: 0 0 79 0 IO-APIC-level ehci_hcd:usb1
177: 0 0 0 7170885 IO-APIC-level ata_piix, b4xxp
185: 0 0 0 59375 IO-APIC-level ata_piix
NMI: 0 0 0 0
LOC: 7104234 7104239 7104243 7104218
ERR: 0
MIS: 0
Comment puis-je identifier l'IRQ à l'origine de l'utilisation élevée du processeur?
Éditer:
Sortie de dmesg | grep -i b4xxp
wcb4xxp 0000:30:00.0: probe called for b4xx...
wcb4xxp 0000:30:00.0: Identified Wildcard B410P (controller rev 1) at 00012000, IRQ 177
wcb4xxp 0000:30:00.0: VPM 0/1 init: chip ver 33
wcb4xxp 0000:30:00.0: VPM 1/1 init: chip ver 33
wcb4xxp 0000:30:00.0: Hardware echo cancellation enabled.
wcb4xxp 0000:30:00.0: Port 1: TE mode
wcb4xxp 0000:30:00.0: Port 2: TE mode
wcb4xxp 0000:30:00.0: Port 3: TE mode
wcb4xxp 0000:30:00.0: Port 4: TE mode
wcb4xxp 0000:30:00.0: Did not do the highestorder stuff
wcb4xxp 0000:30:00.0: new card sync source: port 3
dmesg | grep -i b4xxp
montre?Réponses:
Eh bien, puisque vous demandez spécifiquement comment savoir quel IRQ est responsable du nombre
mpstat
, vous pouvez supposer que ce n'est pas le temporisateur d'interruption local (LOC), car ces nombres sont assez égaux, et pourtantmpstat
montre certains de ces processeurs à 0% irq.Cela laisse IRQ 0, qui est le minuteur du système, et sur lequel vous ne pouvez rien faire, et IRQ 177, qui est lié à votre pilote b4xxp.
Je suppose que l'IRQ 177 serait votre coupable.
Si cela pose problème et que vous souhaitez modifier le comportement que vous voyez, essayez:
désactiver le logiciel qui utilise cette carte et voir si les interruptions diminuent.
retirer cette carte du système et décharger le pilote, et voir s'il y a une amélioration.
déplacez cette carte dans un autre emplacement et voyez si cela vous aide.
recherchez les pilotes ou correctifs mis à jour pour le logiciel.
Si ce n'est pas un problème et que vous étiez simplement curieux, continuez. :)
la source
la source
BP410P est une carte RNIS avec 4 lignes BRI, si les quatre lignes sont connectées, vous devriez recevoir quatre paquets de synchronisation à la fois et lorsque des appels sont en cours, vous pouvez avoir 8 canaux de voix actifs tous les paquets d'envoi, etc.
Si vous obtenez un nombre d'IRQ élevé sans aucun appel, cela pourrait être le symptôme de 2 mauvaises choses:
ata_piix
(ide / sata) utilise la même ligne que la carte BP410P, les pilotes pourraient ne pas aimer beaucoup, dans ce cas, la réponse précédente a suggéré d'essayer de changer la carte dans un autre emplacement .Pour déboguer, vous pouvez également essayer de retirer les câbles BRI et voir si cela fait une différence.
la source
+1
Je vérifierai vos conseils. MerciJe me suis retrouvé dans une telle situation il y a quelque temps, et j'ai écrit un petit
irqtop
outil pour suivre facilement ce qui se passe. C'est essentiellement la même chose que de faire unwatch -n 1 cat /proc/interrupts
, avec une sortie plus agréable.Code source disponible ici: https://gitlab.com/elboulangero/irqtop
la source