В чем причина больших прерываний LOC?

17

Я вижу огромные пики прерываний LOC - около 4 миллионов в секунду, что именно такое прерывание LOC, что может вызвать эти пики и что я могу с этим сделать?

Вот график Мунина, иллюстрирующий эти спайки:

                    График прерываний

Вот график CPU за тот же период, показывающий, как он полностью захватывает. Мне нравится, как раскраска заставляет сервер работать в эти периоды ...

                    График процессора

Это двойной четырехъядерный сервер Xeon под управлением Ubuntu 8.04. Версия ядра, о которой сообщают, unameявляется 2.6.24-24-сервером.

Вот содержимое / proc / interrupts

           CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
  0: 6930 6762 6633 6841 6760 6863 6692 6809 Таймер IO-APIC-edge
  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:00 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 Ложные прерывания
ERR: 0
MIS: 0

Ссылки

Оригинальные изображения

Пол Диксон
источник

Ответы:

12

Это процесс управления многопоточными потоками. См. « Сходство SMP и правильная обработка прерываний в Linux», где вы найдете ответы о том, как уменьшить его, но в основном способ, которым система обрабатывает маскирование прерываний, вызван необходимостью загрузки ЦП большего количества потоков или памяти и только CPU0 может принимать прерывания.

Чем выше значение, тем лучше происходит многопоточность системы, и это хорошо.

Стивен Томпсон
источник
1
+1 и спасибо за ссылку. Должен ли я беспокоиться о том, что мой график активности процессора, кажется, показывает практически нулевую активность «пользователей» во время этих всплесков?
Пол Диксон
В системе постоянно происходят прерывания, даже при отсутствии активности пользователя. Просто процесс работы с памятью требует много NMI (немаскируемых прерываний), так что все хорошо.
Стивен Томпсон