由于磁盘控制器故障,我已将服务器从一个主板移至另一个主板。
从那以后,我一直注意到,其中一个核心中的25%总是归IRQ所有,但是我一直不知道自己是哪个IRQ负责的。
内核是Linux 2.6.18-194.3.1.el5(CentOS)。mpstat -P ALL
显示:
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
这是/ 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
如何确定哪个IRQ导致CPU使用率高?
编辑:
来自的输出 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
好吧,由于您是专门询问如何知道哪个IRQ负责in中的数字mpstat
,因此您可以假定它不是本地中断计时器(LOC),因为这些数字相当相等,但mpstat
其中一些cpus显示为0% irq。
这样就留下了IRQ 0(它是系统定时器,您不能做任何事情)和IRQ 177(与您的b4xxp驱动程序绑定)。
我的猜测是IRQ 177将是您的罪魁祸首。
如果这引起了问题,并且您想更改所看到的行为,请尝试:
禁用使用该卡的软件,并查看中断是否减少。
从系统中卸下该卡,然后卸载驱动程序,然后查看是否有改进。
将该卡移到另一个插槽,看看是否有帮助。
检查软件的更新驱动程序或补丁。
如果这不是问题,并且您只是好奇,请继续。:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句