Linux 使用 isolcpu 参数隔离 cpu

发布时间: 更新时间: 总字数:330 阅读时间:1m 作者: 分享 复制网址
专栏文章
  1. Linux 系统调优
  2. QPS和TPS介绍
  3. Linux 清空缓存 drop caches
  4. Linux 使用 isolcpu 参数隔离 cpu(当前)
  5. Linux NUMA 介绍
  6. Linux hugepage 介绍和配置
  7. Linux IOMMU 介绍

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
专栏文章
  1. Linux 系统调优
  2. QPS和TPS介绍
  3. Linux 清空缓存 drop caches
  4. Linux 使用 isolcpu 参数隔离 cpu(当前)
  5. Linux NUMA 介绍
  6. Linux hugepage 介绍和配置
  7. Linux IOMMU 介绍
最新评论
加载中...
Home Archives Categories Tags Statistics