在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親和性。