首页 > 代码库 > IRQ的使用
IRQ的使用
下面是一台服务器的top后的cpu状态:
si的意思是system interrupt,也就是系统层面的软中断。也就是说一颗cpu接受一个软件的请求时,需要放弃其他正在处理的工作,这么一切换就是软中断。默认情况下,程序都会使用第一颗CPU,所以会造成第一颗CPU的si较大,而其他核心的si较小,这也就完全失去了服务器多核cpu的意义。所以有时我们需要手动设置程序使用哪颗CPU。但是和nginx可以手动绑定使用哪颗cpu是不同的,因为那种绑定是尽量使用指定的cpu核心,避免si,***能,此时,此颗CPU的idle值很小。而这里指的是避免程序使用一颗CPU。
linux的si可以在/proc/interrupt中看到:
他们的意义如下:
IRQ编号、各个程序再对应cpu核心上发生的si次数、可编程中断控制器、程序名(也叫做设备)
IRQ全称为Interrupt Request,即是“中断请求”的意思,也就是程序请求CPU处理自己的请求。各个程序(设备)都有自己对应的的IRQ编号,这个IRQ编号在/proc/irq目录中,每个数字和程序名字的对应关系如上图。
对于有着高并发场景的服务器来说,网卡对cpu的占用也是相当高的,所以如果让其占用一个cpu核心那么不仅会影响系统性能,而且也会影响
在每台电脑的系统中,是由一个中断控制器8259或是8259A的芯片(现在此芯片大都集成到其它的芯片内)来控制系统中每个硬件的中断控制。目前共有16组IRQ,去掉其中用来作桥接的一组IRQ,实际上只有15组IRQ可供硬件调用。
本文出自 “Go right on” 博客,请务必保留此出处http://caduke.blog.51cto.com/3365689/1600379
IRQ的使用