Linux 使用 isolcpu 参数隔离 cpu

发布时间: 更新时间: 总字数:330 阅读时间:1m 作者: IP属地: 分享 复制网址

Linux 系统若要对指定的 CPU 进行绑定,首先需要对 CPU 进行隔离,可以在 grub 中配置 isolcpu 参数达到隔离 CPU 的目的。

说明

隔离 CPU 是对用户空间的进程有效,对与内核空间的进程并不是决对生效的。

配置

修改 grub

假设要隔离序号为 0,1 的CPU,需要修改 /etc/default/grub,在 GRUB_CMDLINE_LINUX 中添加 isolcpus=0,1,示例:

修改前:

GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"

修改后:

GRUB_CMDLINE_LINUX="crashkernel=auto spectre_v2=retpoline rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet isolcpus=0,1"

使 grub 生效

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

重启系统

reboot

检查是否生效

  • 方法一

查看 /proc/cmdline 中是否有 isolcpu 参数

  • 方法二:查看 root 进程占用情况,示例显示 2-3 表示 0-1 已经被隔离
$ taskset -cp 1
pid 1's current affinity mask: c

c 是16进制,对应二进制为 1100,表示占用 2,3 号 CPU。

  • 方法三
$ taskset -cp $$
pid 1763's current affinity list: 2,3

参考:Linux taskset 命令查看或设置进程的CPU关联

扩展

  • docker 启动时可以通过指定 --cpuset-cpus="0-2" 配合 isolcpu 实现隔离 CPU,否则将会占用所有的 CPU
Home Archives Categories Tags Statistics
本文总阅读量 次 本站总访问量 次 本站总访客数