首先需要说明的是,隔离cpu对用户空间的进程有效,但是对内核的进程无效,所以被隔离的cpu并不是完全空闲的。

CPU隔离步骤:

首先在/etc/default/grub文件中最后一行添加参数isolcpu

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash isolcpus=1,3"(这里表示1和3两个cpu被隔离,cpu序号从0开始)
​
或者添加到:
​
GRUB_CMDLINE_LINUX="isolcpus=1,3"

然后更新/boot/grub/grub.cfg文件

常规方法是:

sudo update-grub     //这个方法在/etc/default/grub文件开头的注释里说明

如果提示update-grub命令找不到,安装一下:

sudo apt-get update; sudo apt-get install --reinstall grub

执行完update-grub之后,看一下/boot/grub/grub.cfg的时间戳,如果更新了说明成功了。如果没有更新成功,可以试试另一种更新方法:

sudo grub-mkconfig -o /boot/grub/grub.cfg

最后重启系统检查配置是否生效

可以查看 /proc/cmdline里是不是有isolcpu参数,有的话说明本次重启确实带了这个参数

cat /proc/cmdline

也可以查看进程1的cpu affinity:

taskset -cp 1
pid 1's current affinity list: 0,2

还可以查看当前进程的cpu affinity:

taskset -cp $$
pid 1977's current affinity list: 0,2

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐