我看到LOC中断有巨大的峰值 – 大约每秒400万次,LOC中断究竟是什么,什么会引起这些尖峰,我该怎么办?
下面是一个说明这些峰值的图表:
中断图http://blog.dixo.net/irq.png
这是同一时期的CPU图表,显示了它如何完全接pipe。 我喜欢这些着色让这些服务器在这段时间内着火
CPU图http://blog.dixo.net/cpu.png
这是一款运行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-边缘i8042
8:3 2 4 3 7 5 6 3 IO-APIC边缘rtc
9:0 0 0 0 0 0 0 0 IO-APIC-steroi acpi
12:1 0 0 1 0 0 1 1 IO-APIC-边缘i8042
14:22 20 22 24 27 24 25 15 IO-APIC边缘数据库
15:0 0 0 0 0 0 0 0 IO-APIC边缘数据库
16:50766012 50843554 50824664 50759980 50720894 50854422 50808772 50787944 IO-APIC-fastener ioc0
17:2551207 2584434 2572429 2564703 2546844 2593218 2574248 2563553 IO-APIC -UCEO UHCI_HCD:USB1,UHCI_HCD:USB3,EHCI_HCD:USB5
18:24 21 28 26 32 30 32 27 IO-APIC -UCEOUhci_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
这是pipe理多CPU线程的过程。 请参阅http://www.alexonlinux.com/smp-affinity-and-proper-interrupt-handling-in-linux获取有关如何降低它的答案,但基本上它是系统处理屏蔽中断的方式是由于CPU需要喂更多的线程stream或内存而造成的,只有CPU0能够承受中断。
值越高,系统线程越好,这是一件好事。