taskset 常用命令速查表
把 taskset CPU 亲和性最常用的命令整理成速查,性能调优时对照查。
返回 系统与运维基础用法 6
taskset -p <pid>查看进程 CPU 掩码
taskset -c 0,1 <command>绑定到 CPU 0 和 1
taskset -c 0-3 <command>绑定到 CPU 0-3
taskset -p <mask> <pid>修改进程 CPU 掩码
taskset -cp 0,1 <pid>修改进程绑定到 CPU 0,1
taskset -cp 0-3 <pid>修改进程绑定到 CPU 0-3
掩码格式 6
0x00000001CPU 0(十六进制掩码)
0x00000003CPU 0 和 1
0x0000000fCPU 0-3
-c 0CPU 列表格式(更易读)
-c 0,2,4指定多个 CPU
-c 0-3,8-11混合范围
性能调优场景 5
taskset -c 0-3 ./cpu_intensive_app限制应用使用特定核心
taskset -c 4-7 ./realtime_app隔离核心给实时应用
taskset -c 0 nginx绑定 Nginx 到特定核心
taskset -c 1 mysql绑定 MySQL 到特定核心
taskset -cp 0 $(pgrep app)修改运行中进程
NUMA 架构优化 4
numactl --hardware查看 NUMA 拓扑
numactl -c 0 -m 0 ./app绑定 CPU 和内存节点
numactl --cpunodebind=0 --membind=0 ./app完整 NUMA 绑定
numastat -p <pid>查看进程 NUMA 内存分布
与其他工具配合 5
htop查看 CPU 使用情况
top -1查看各 CPU 核心负载
mpstat -P ALL 1实时监控各 CPU 核心
pidstat -t -p <pid> 1查看线程 CPU 使用
cat /proc/<pid>/status | grep Cpus_allowed查看进程 CPU 掩码
💡 提示
- CPU 亲和性可以减少缓存失效,提升性能,但过度绑定可能导致负载不均。
- 实时应用(如高频交易、音视频处理)适合绑定到隔离核心。
- NUMA 架构下,CPU 和内存节点绑定能显著减少跨节点访问延迟。