Ubuntu

高 LOC 中斷的原因是什麼?

  • January 2, 2019

我看到了 LOC 中斷的巨大峰值 - 每秒大約 400 萬次,LOC 中斷到底是什麼,什麼會導致這些峰值,我能做些什麼呢?

這是說明這些尖峰的穆寧圖:

                    中斷圖

這是同一時期的 CPU 圖表,顯示了它是如何完全接管的。我喜歡這種顏色如何讓伺服器在這些時期看起來像是著火了……

                    CPU 圖

這是一個執行 Ubuntu 8.04 的雙四核 Xeon 伺服器。報告的核心版本uname是 2.6.24-24-server。

這是 /proc/interrupts 的內容

CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
0:6930 6762 6633 6841 6760 6863 6692 6809 IO-APIC邊沿定時器
1: 0 0 0 0 0 1 1 0 IO-APIC-edge i8042
8: 3 2 4 3 7 5 6 3 IO-APIC-edge rtc
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 IO-APIC-edge libata
15:0 0 0 0 0 0 0 0 IO-APIC-edge libata
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 不可屏蔽中斷
LOC:260770889 233105051 191904989 121472332 107472778 118895615 157741363 115713984 本地定時器中斷
RES: 767265318 1003071645 432052982 199027537 114757970 128486722 221935258 141439861 重新安排中斷
CAL:32376 26205 32414 26355 32453 26425 32399 26335 函式呼叫中斷
TLB:5325301 5240763 5025455 4999356 4944090 5044423 5050813 5004620 TLB 擊落
TRM:0 0 0 0 0 0 0 0 熱事件中斷
SPU:0 0 0 0 0 0 0 0 虛假中斷
錯誤:0
什麼:0

參考

原始圖像

這是管理多 CPU 執行緒的過程。請參閱Linux中的 SMP 親和性和正確的中斷處理以獲取有關如何降低它的答案,但基本上它是系統處理屏蔽中斷的方式,這些中斷是由 CPU 需要提供更多執行緒流或記憶體而引起的,並且僅CPU0 能夠承擔中斷。

值越高,系統的執行緒就越好,這是一件好事。

引用自:https://serverfault.com/questions/86226