Apa penyebab gangguan LOC tinggi?

17

Saya melihat lonjakan besar dalam interupsi LOC - sekitar 4 juta per detik, apa sebenarnya interupsi LOC, apa yang akan menyebabkan lonjakan ini, dan apa yang dapat saya lakukan?

Berikut adalah grafik Munin yang menggambarkan lonjakan ini:

                    Grafik interupsi

Berikut adalah grafik CPU untuk periode yang sama yang menunjukkan bagaimana ia sepenuhnya mengambil alih. Saya suka bagaimana warna membuatnya tampak server terbakar selama periode ini ...

                    Grafik CPU

Ini adalah server Xeon quad-core ganda yang menjalankan Ubuntu 8.04. Versi kernel yang dilaporkan oleh unameadalah 2.6.24-24-server.

Inilah isi dari / proc / interupsi

           CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
  0: 6930 6762 6633 6841 6760 6863 6692 6809 IO-APIC-edge timer
  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 Interupsi yang tidak bisa ditutup
LOC: 260770889 233105051 191904989 121472332 107472778 118895615 157741363 115713984 Pengatur waktu lokal
RES: 767265318 1003071645 432052982 199027537 114757970 128486722 221935258 141439861 Menjadwalkan ulang interupsi
CAL: 32376 26205 32414 26355 32453 26425 32399 26335 interupsi panggilan fungsi
TLB: 5325301 5240763 5025455 4999356 4944090 5044423 5050813 5004620 penembakan TLB
TRM: 0 0 0 0 0 0 0 0 Thermal event interrupts
SPU: 0 0 0 0 0 0 0 0 Interrupt palsu
ERR: 0
MIS: 0

Referensi

Gambar asli

Paul Dixon
sumber

Jawaban:

12

Ini adalah proses untuk mengelola multi-CPU threading. Lihat SMP Affinity dan Penanganan Interrupt Tepat di Linux untuk jawaban yang Anda cari tentang cara menurunkannya, tetapi pada dasarnya cara sistem menangani masking interupsi yang disebabkan oleh CPU perlu diberi lebih banyak aliran thread atau memori dan hanya CPU0 bisa menerima interupsi.

Semakin tinggi nilainya, semakin baik threading sistem terjadi, dan ini adalah hal yang baik.

Stephen Thompson
sumber
1
+1 dan terima kasih atas tautannya. Haruskah saya khawatir bahwa grafik aktivitas CPU saya tampaknya menunjukkan cukup banyak aktivitas "pengguna" nol selama paku itu?
Paul Dixon
Interupsi berlangsung sepanjang waktu di sistem, bahkan dengan 0 aktivitas pengguna. Hanya proses berurusan dengan memori membutuhkan banyak NMI (interupsi non maskable) sehingga semuanya baik.
Stephen Thompson