Я вижу огромные всплески прерываний LOC - около 4 миллионов в секунду, что именно такое прерывание LOC, что может вызвать эти всплески и что я могу с этим поделать?
Вот график Мунина, иллюстрирующий эти всплески:
Вот график ЦП за тот же период, показывающий, как он полностью берет верх. Мне нравится, как из-за раскраски кажется, что сервер горит в эти периоды ...
Это двухъядерный четырехъядерный сервер 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 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 Non-maskable interrupts LOC: 260770889 233105051 191904989 121472332 107472778 118895615 157741363 115713984 Local timer interrupts RES: 767265318 1003071645 432052982 199027537 114757970 128486722 221935258 141439861 Rescheduling interrupts CAL: 32376 26205 32414 26355 32453 26425 32399 26335 function call interrupts TLB: 5325301 5240763 5025455 4999356 4944090 5044423 5050813 5004620 TLB shootdowns TRM: 0 0 0 0 0 0 0 0 Thermal event interrupts SPU: 0 0 0 0 0 0 0 0 Spurious interrupts ERR: 0 MIS: 0
Исходные изображения
Это процесс управления многопоточностью. Видеть Сходство SMP и правильная обработка прерываний в Linux для ответов, которые вы ищете о том, как его снизить, но в основном это способ, которым система обрабатывает маскировку прерываний, вызванных тем, что ЦП должен получать больше потоков потоков или памяти, и только CPU0 может принимать прерывания.
Чем выше значение, тем лучше происходит многопоточность системы, и это хорошо.