mike Asked: 2009-06-27 09:11:11 +0800 CST2009-06-27 09:11:11 +0800 CST 2009-06-27 09:11:11 +0800 CST 是否可以限制 Linux 进程使其只能在特定机器上的特定内核上运行? 772 假设我有一个四核机器和四个相同的进程,每个进程都有十个线程。在 Linux 中,是否可以说进程 A 只允许在 CPU 0 上运行,进程 B 只允许在 CPU 1 上运行,等等? central-processing-unit linux unix multi-threading 2 个回答 Voted David Spillett 2009-06-27T09:20:06+08:002009-06-27T09:20:06+08:00 taskset <affinity mask> -p <process> IE taskset 1 -p 12345 将进程 12345 设置为仅使用处理器/核心 1 位掩码可以是一个列表(即 1,3,4 使用 4+ 核心系统的核心 1 3 和 4)或十六进制位掩码(0x0000000D 1,3,4, 0x00000001 仅用于核心 1) taskset通常在一个名为shedutils. 编辑:差点忘了...如果要设置新命令的关联性而不是为现有进程更改它,请使用: taskset <mask> <program> [<arg1>]...[<argN>] Rajat 2009-06-27T09:44:31+08:002009-06-27T09:44:31+08:00 taskset (util-linux 2.13-pre7) 用法:taskset [options] [mask | cpu 列表] [pid | cmd [args...]] 设置或获取进程的亲和性 -p,--pid 对已有的给定pid进行操作 -c,--cpu-list 以列表格式显示并指定cpus -h,--help 显示此帮助 -v,--version 输出版本信息 默认行为是运行一个新命令:taskset 03 sshd -b 1024 您可以检索现有任务的掩码:taskset -p 700 或设置它:taskset -p 03 700 列表格式使用逗号分隔的列表而不是掩码:taskset -pc 0,3,7-11 700 列表格式的范围可以采用步幅参数:例如 0-31:2 相当于掩码 0x55555555 您可以随时根据需要优化您的服务器
IE
将进程 12345 设置为仅使用处理器/核心 1
位掩码可以是一个列表(即 1,3,4 使用 4+ 核心系统的核心 1 3 和 4)或十六进制位掩码(0x0000000D 1,3,4, 0x00000001 仅用于核心 1)
taskset
通常在一个名为shedutils
.编辑:差点忘了...如果要设置新命令的关联性而不是为现有进程更改它,请使用:
taskset (util-linux 2.13-pre7) 用法:taskset [options] [mask | cpu 列表] [pid | cmd [args...]] 设置或获取进程的亲和性
-p,--pid 对已有的给定pid进行操作 -c,--cpu-list 以列表格式显示并指定cpus -h,--help 显示此帮助 -v,--version 输出版本信息
默认行为是运行一个新命令:taskset 03 sshd -b 1024 您可以检索现有任务的掩码:taskset -p 700 或设置它:taskset -p 03 700 列表格式使用逗号分隔的列表而不是掩码:taskset -pc 0,3,7-11 700 列表格式的范围可以采用步幅参数:例如 0-31:2 相当于掩码 0x55555555
您可以随时根据需要优化您的服务器