摘自:http://www.voidcn.com/article/p-evfjwiae-bnv.html
使用isolcpus减少上下文切换。
为了减少上下文切换的可能性,需要提示内核,禁止将其他用户空间任务调度到DPDK应用线程所在核。isolcpus Linux内核参数用于此目的。
例如,如果DPDK应用程序要在逻辑核心1,2和3上运行,则应将以下内容添加到内核参数列表中:
isolcpus = 1,2,3
使用vim打开/boot/grub2/grub.cfg文件(一般在99行)
定位到menuentry ‘CentOS Linux (3.10.0-327.el7.x86_64) 7 (Core)这一项
找到linux16 /vmlinuz-3.10.0-327.el7.x86_64 root=UUID=e542e506-5ae4-45a4-b6c2-b31eecec23e3 ro crashkernel=auto rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8这行
在后面加上isolcpus的参数,如果在启动的时候配置启动参数 isolcpus=2,3。那么系统启动后将不使用CPU3和CPU4。
配置后进行重启机器
启动以后通过cat /proc/cmdline命令进行验证
备注 上述方法配置后机器如果没有生效,中断被系统调度到2核(可以分析下原因),使用以下方法配置后生效
1.查看设备接口的中断号
2、使用命令(如下)进行配置
echo “00000000,00000000,00000000,00000000,00000000,00000001” > /proc/irq/230/smp_affinity
echo “00000000,00000000,00000000,00000000,00000000,00000001” > /proc/irq/231/smp_affinity
echo “00000000,00000000,00000000,00000000,00000000,00000001” > /proc/irq/232/smp_affinity
echo “00000000,00000000,00000000,00000000,00000000,00000001” > /proc/irq/233/smp_affinity
echo “00000000,00000000,00000000,00000000,00000000,00000001” > /proc/irq/234/smp_affinity
3、配置完成后观察中断已经由第2核变为0核