私はクアッドコアを持っていて、munin(割り込みとコンテキストスイッチの監視)を見つけました。しばらくの間、平均が250であったのに、割り込みとコンテキストスイッチが毎秒25kに急上昇しました。
私の監視ツールによると、それが異常であるという事実を除いて、何が起こったのか、またそれが何を意味するのかわかりません。
これは私のopenVZ仮想コンテナの1つで発生しました。
注:同時に、負荷は2.5に急上昇し、CPU使用率は同じ時点で110%のシステム、15%のユーザー、100%のIOwaitでした。
ホストマシンに/ proc/interruptsの出力を添付しました。
CPU0 CPU1 CPU2 CPU3
0: 48039108 56660082 56431151 51696624 IO-APIC-Edge timer
1: 0 3 0 0 IO-APIC-Edge i8042
4: 4 4 1 3 IO-APIC-Edge serial
8: 1 0 0 0 IO-APIC-Edge rtc
9: 0 0 0 0 IO-APIC-level acpi
12: 4 0 0 0 IO-APIC-Edge i8042
50: 15 16 16 16 IO-APIC-level ata_piix
66: 11113 0 0 56276172 PCI-MSI eth0
169: 12839820 4849263 1080 1167 IO-APIC-level ioc0
225: 6 7 5 5 IO-APIC-level ehci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb4
233: 0 0 0 0 IO-APIC-level uhci_hcd:usb3
NMI: 17173 16340 16694 17306
LOC: 214221117 214220936 214196385 214196306
ERR: 0
MIS: 0
これは、多くのロックを実行するマルチスレッドアプリケーションになります。ロックするたびに、CPUはクォンタムをプリエンプトし、別のスレッドが実行できるようにします。スレッド間でスロッシングにすべての時間を費やすM/Tアプリを作成できますが、いずれも有用な作業を行うことはありません。また、これらすべてのコンテキストスイッチが発生するため、CPUはスレッド自体が到達するよりもスレッドの切り替えに多くの時間を費やします。仕事する。
これらのスパイク中にアプリのCPU使用率にスパイクがあるかどうかを確認します。
これは、非常に短いタイムスライスが原因で、監視システムが生成した数値アーティファクトである可能性があります。たぶん、ここで見ているのは単なるサンプリング効果です。