
ディスクコントローラの障害により、サーバーをあるマザーボードから別のマザーボードに移動しました。
それ以来、コアの1つの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/interrupt です
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
高いCPU使用率を引き起こすIRQを確認するには?
編集する:
出力は以下から来ます。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
答え1
さて、あなたはどのIRQがその数を担当するのかを具体的に知る方法を尋ねているので、数はmpstat
かなり同じであるため、ローカル割り込みタイマー(LOC)ではないと仮定することができますが、mpstat
これらのCPUの一部はゼロであるとマークされます。 %割り込み。
残っているのはIRQ 0(システムタイマーでは何もできません)とIRQ 177(b4xxpドライバに関連)です。
私の考えでは、IRQ 177が原因のようです。
これにより問題が発生し、表示される動作を変更するには、次の手順を試してください。
カードを使用するソフトウェアを無効にし、邪魔にならないようにしてください。
システムからカードを取り外し、ドライバーを取り外して改善があるかどうかを確認します。
カードを別のスロットに移動して、役に立つことを確認してください。
ソフトウェアの更新されたドライバまたはパッチを確認してください。
これが問題ではなく、ただ好奇心に過ぎない場合は続けてください。 :)
答え2
watch -n1 -d cat /proc/interrupts
答え3
BP410Pは4つのBRIラインがあるISDNカードです。 4つの回線がすべて接続されると、一度に4つの同期パケットを受信する必要があり、電話をかけるときに8つの音声チャンネルを有効にできます。すべての送信パケットが待機します。
電話をかけずに高いIRQ数を取得する場合、これは2つの悪い兆候かもしれません。
- 携帯通信会社に同期の問題があり、音声品質も良くありません。
- IRQラインの衝突。あなたの(ide / sata)がBP410Pカードと同じ行を使用している場合、
ata_piix
ドライバはこれがあまり好きではないかもしれません。この場合、実際にカードを次に変更しようとする以前の答えがあります。別のスロット。
デバッグするには、BRI ケーブルを取り外して影響があるかどうかを確認することもできます。
答え4
私はしばらく前にこのような状況にあって、irqtop
何が起こっているのかを簡単に監視するための小さなツールを作成しました。基本的にはこれを行うのと同じですwatch -n 1 cat /proc/interrupts
が、出力が優れています。
ソースコードはここで確認できます。https://gitlab.com/elboulangero/irqtop