约 7281 字

约 36 分钟

#Bash 的 taskset 命令

taskset [OPTION]... MASK CMD [ARGS]...

功能

设置(或获取)进程的 CPU 亲和性。

类型

可执行文件(/usr/bin/su),属于 util-linux。

参数

  • OPTION 选项:
    • -a, --all-tasks - 设置(或获取)指定进程的所有任务(线程)的 CPU 亲和性
    • -c, --cpu-list - 将掩码解释为处理器数值列表,用逗号分隔
    • -p, --pid - 设置(或获取)指定进程的亲和性
    • -h, --help - 显示帮助
    • -V, --version - 显示版本
  • MASK - 掩码
  • CMD - 要执行的命令;使用 -p 选项时表示 PID
  • ARGS - 传递给 CMD 的参数

#示例

使用指定的 CPU 核心运行程序

$ taskset 0x1 cmd                   # 使用 0 号 CPU 核心运行 cmd
$ taskset 0x3 cmd                   # 使用 0 号 和 1 号 CPU 核心运行 cmd
$ taskset 0xffff cmd                # 使用所有 CPU 核心运行 cmd
$ taskset --cpu-list 0-2,6 cmd      # 使用 #0 #1 #2 #6 核心运行 cmd
$ taskset --cpu-list 0-8:2 cmd      # 使用 #0 #2 #4 #6 #8 核心运行 cmd

查看指定进程的 CPU 亲和性

$ taskset -p $$                     # 查看当前 shell 进程的 CPU 亲和性
pid 694907's current affinity mask: ff
  • $$ 是当前 bash 的进 ID

修改指定进程的 CPU 亲和性

$ sudo taskset -p 1 $$              # 将当前 shell 的 CPU 亲和性设为 1,只在 #0 CPU 核心上运行
pid 694907's current affinity mask: ff
pid 694907's new affinity mask: 1
  • $$ 是当前 bash 的进 ID

#推荐阅读

#手册

更新: 2026/3/9

作者: PlanC

创建: 2026/3/9