公司有次压测存在一个问题:CPU资源压不上去,一直在40%已达到了性能瓶颈,后定位到原因,所在的服务器在压测过程中产生的中断都落在CPU0上处理,这种中断并没有均衡到各个CPU,导致单个CPU过载而形成瓶颈。(这个机器是新的物理机器)
解决方式是启用irqbalance服务(命令:service irqbalance start),让硬件中断在多个CPU中分配处理,从而解决单CPU过载的问题。
IRQBalance主要功能是可以合理的调配使用各个CPU核心,特别是对于目前主流多核心的CPU,简单的说就是能够把压力均匀的分配到各个CPU核心上,对提升性能有很大的帮助。
启用 irqbalance 服务,既可以提升性能,又可以降低能耗。irqbalance 用于优化中断分配,它会自动收集系统数据以分析使用模式,并依据系统负载状况将工作状态置于 Performance mode 或 Power-save mode。
处于 Performance mode 时,irqbalance 会将中断尽可能均匀地分发给各个 CPU core,以充分利用 CPU 多核,提升性能。
处于 Power-save mode 时,irqbalance 会将中断集中分配给第一个 CPU,以保证其它空闲 CPU 的睡眠时间,降低能耗。
开启IRQBalance服务:
service irqbalance start
关闭IRQBalance服务:
service irqbalance stop
关闭开机启动IRQBalance服务:
chkconfig --level 123456 irqbalance off
另外查看/proc/interrupts 这个文件可以看到各个cpu中断情况
直接top命令也可以查看cpu中断情况
参考: http://www.aikaiyuan.com/7109.html
中断:http://blog.csdn.net/joeyon1985/article/details/39127087
top命令:http://www.cnblogs.com/peida/archive/2012/12/24/2831353.html