Есть ли простой способ определить, являются ли прерывания проблемой производительности? У меня есть следующее из cat / proc / interrupts, но на самом деле нет истории этого сервера, поэтому я не знаю, может ли это вызывать какие-либо проблемы. Я нашел определение каждого столбца в http://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-proc-interrupts.html но, похоже, не нашел никаких рекомендаций относительно того, приемлемы ли результаты.
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
0: 1408788887 0 0 0 0 0 0 0 IO-APIC-edge timer
1: 3 0 0 0 0 0 0 0 IO-APIC-edge i8042
8: 1 0 0 0 0 0 0 0 IO-APIC-edge rtc
9: 0 0 0 0 0 0 0 0 IO-APIC-level acpi
12: 4 0 0 0 0 0 0 0 IO-APIC-edge i8042
14: 476 92736034 560949599 89233642 0 0 0 0 IO-APIC-edge ide0
66: 81 0 0 0 0 0 0 0 IO-APIC-level ehci_hcd:usb1, uhci_hcd:usb2, uhci_hcd:usb4
74: 153 62468419 147960075 25257462 0 0 0 0 IO-APIC-level uhci_hcd:usb3, uhci_hcd:usb5
82: 1054378386 0 0 0 0 0 0 0 PCI-MSI eth0
169: 8343 1516025027 954152248 6501060 0 757271678 1872714173 2565826 IO-APIC-level megasas
NMI: 28336831 18526902 35866900 13915052 25165724 26928152 21827791 19303613
LOC: 1408788527 1408756844 1408788059 1408788084 1408788124 1408787843 1408787972 1408787711
ERR: 0
MIS: 0
Проблема с прерываниями - одна из причин высокой загрузки ЦП системы. Если в выводе mpstat не отображаются высокие значения% irq, все в порядке.
Если вас беспокоит, что прерывания распределяются между процессорами неравномерно, вам необходимо включить демон irqbalance или настроить его вручную с помощью / proc / irq / * / smp_affinity.
Еще: http://honglus.blogspot.com/2010/01/troubleshooting-high-system-cpu-usage.html http://honglus.blogspot.com/2011/03/tune-interrupt-and-process-cpu-affinity.html
Максимальное количество прерываний, которые у вас еще есть в среднем:
1872714173 interrupts / 83014987.85 seconds = 23 intr/s
что совсем не страшно. Как бы то ни было, эти статистические данные вполне приемлемы. Пиковое значение 7500 инт / с также приемлемо в загруженной системе.
Независимо от того, что привело вас к выводу, что прерывания - важная метрика, я бы сделал шаг назад и пересмотрел. Они чаще являются следствием проблемы (совершенно другой проблемой), чем единственной причиной проблемы. Единственная ситуация, которая приходит на ум, - это какое-то мошенническое устройство в автобусе.
Если у вас есть sar
отчеты, найдите другую метрику, которая достигает пика во время низкой производительности (очередь выполнения? пейджинг? дисковый ввод-вывод?), и заново начните анализ с этого момента.
Вы должны включить irqbalance
демон, помогающий распределять прерывания таймера по доступным процессорам на сервере. Бегать /sbin/service irqbalance start
и проверим систему чуть позже.