在Ubuntu系统中,cpustat 是一个用于显示CPU统计信息的工具,它本身并不直接提供设置CPU亲和性的功能。但是,你可以使用其他工具来设置CPU亲和性,例如 taskset 或 numactl。
以下是使用这些工具设置CPU亲和性的基本步骤:
taskset查看进程ID:
首先,你需要知道要设置亲和性的进程的PID(进程ID)。你可以使用 ps 或 pgrep 命令来查找进程ID。
ps aux | grep <process_name>
或者
pgrep <process_name>
设置CPU亲和性:
使用 taskset 命令来设置进程的CPU亲和性。例如,如果你想将进程绑定到CPU 0和CPU 1,可以使用以下命令:
taskset -c 0,1 -p <pid>
这里的 -c 选项后面跟着的是以逗号分隔的CPU核心编号列表,-p 选项后面跟着的是进程ID。
永久设置:
如果你想让进程在启动时就自动设置CPU亲和性,可以在启动脚本中添加 taskset 命令。例如,在 ~/.bashrc 或 ~/.profile 文件中添加:
taskset -c 0,1 <command>
numactl查看NUMA节点信息:
如果你的系统支持NUMA(非一致性内存访问),你可以使用 numactl 命令来查看NUMA节点信息。
numactl --hardware
设置CPU亲和性和NUMA节点:
使用 numactl 命令来设置进程的CPU亲和性和NUMA节点。例如,如果你想将进程绑定到CPU 0和CPU 1,并且指定NUMA节点0,可以使用以下命令:
numactl --cpunodebind=0 --cpubind=0,1 <command>
这里的 --cpunodebind 选项后面跟着的是NUMA节点编号,--cpubind 选项后面跟着的是以逗号分隔的CPU核心编号列表。
假设你想将名为 myapp 的进程绑定到CPU 0和CPU 1,可以这样做:
# 查找进程ID
pid=$(pgrep myapp)
# 使用taskset设置CPU亲和性
taskset -c 0,1 -p $pid
# 或者使用numactl设置CPU亲和性和NUMA节点
numactl --cpunodebind=0 --cpubind=0,1 -p $pid
通过这些方法,你可以在Ubuntu系统中设置进程的CPU亲和性。