以前从没有留意过irqbalance 服务,最近公司线上服务的一台机器因性能低找大牛排查,原因是irqbalance没有启动。
一起认识一下irqbalance
irqbalance用于优化中断分配,它会自动收集系统数据以分析使用模式,并依据系统负载状况将工作状态置于 Performance mode 或 Power-save mode。处于Performance mode 时,irqbalance 会将中断尽可能均匀地分发给各个 CPU core,以充分利用 CPU 多核,提升性能,在机器需要高并发时,建议开始该服务。
处于Power-save mode 时,irqbalance 会将中断集中分配给第一个 CPU,以保证其它空闲 CPU 的睡眠时间,降低能耗。至于深层次的irqbalance实现原理,请参考 http://blog.yufeng.info/archives/2422
查看一下irqbalance运行状态
[root@localhost ~]# /etc/init.d/irqbalance status
irqbalance (pid 1787) is running...
判断irqbalance是否生效,可以用以下命令
[root@localhost]# cat cat /proc/interrupts
cat: cat: No such file or directory
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7 CPU8 CPU9 CPU10 CPU11
0: 211 0 0 0 0 0 0 0 0 0 0 0 IR-IO-APIC-edge timer
3: 1 0 0 0 0 0 0 0 0 0 0 0 IR-IO-APIC-edge
4: 1 0 0 0 0 0 0 0 0 0 0 0 IR-IO-APIC-edge
8: 1 0 0 0 0 0 0 0 0 0 0 0 IR-IO-APIC-edge rtc0
9: 3 0 0 0 0 0 0 0 0 0 0 0 IR-IO-APIC-fasteoi acpi
10: 248 0 0 0 0 0 0 0 0 0 0 0 IR-IO-APIC-edge ipmi_si
18: 112 0 633 0 0 0