基本思路是如何让CPU的超线程或者多核更加均衡和高效的利用起来,我们知道总是有一块cpu去专门响应网卡的中断请求,如果网络请求包非常大,很可能单个CPU就处理不过来,因此,需要激活多核或者超线程,把网卡中断请求分发到多个CPU去执行,从而提高整体服务器的接入性能,也是提高CPU资源利用率的好办法。下面分别进行讨论:
一, 双CPU超线程的服务器
我们知道,在linux下,对于双CPU超线程的服务器而已,如果内核激活了CPU的超线程功能(HT), 则通过cat /proc/cpuinfo 可以识别到4块CPU: CPU0-3,其中CPU0和CPU1是同一真实CPU的本身和它的超线程出的CPU,CPU2和CPU3也是同理一对。
我们可以配置网卡的irq路由,来选择指定的一块CPU来处理对应网卡中断请求,从而使得多块网卡的中断处理分别分摊到2块真实的CPU上,达到充分发挥双CPU的性能。
1, 首先我们可以通过访问/proc/cpuinfo的信息查看到cpu的具体信息。
cat /proc/cpuinfo
cat /proc/cpuinfo | grep processor
cat /proc/cpuinfo | grep processor| wc –l
最后的命令可以得到当前cpu的个数。
2, 分别获取eth0和eth1网卡的中断irq号,并且赋值给shell变量
ETH0_IRQ_NUM =`cat /proc/interrupts | grep eth0 | awk -F ':' '{print $1}