linux如何看某个进程用了几个cpu
linux如何看某个进程用了几个cpu详细介绍
在 Linux 中查看某个进程使用了多少个 CPU(即占用的 CPU 核心数),可以通过以下几种方法实现:
方法一:使用
top 或
htop 实时监控(直观查看 CPU 占用百分比)
top命令- 打开终端,输入
top进入实时监控界面。 - 按下
Shift + f或f键,进入列选择模式,找到并勾选S(Scheduler,调度信息)或%CPU列(默认已显示)。 - 按
Enter确认,回到主界面。 - 找到目标进程,查看其
%CPU列:- 若数值在 0%~100% 之间,表示占用单个 CPU 核心的百分比;
- 若数值超过 100%(如 200%),表示占用了多个核心(例如 200% 对应 2 个核心满负荷)。
示例:
plaintext%CPU PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND200.1 1234 user 20 0 100000 20000 5000 R 200 2.0 1:23.45 target_process
上述示例中,
%CPU为 200%,表示该进程占用了 2 个 CPU 核心。- 打开终端,输入
方法二:使用
ps 命令查看进程的 CPU 亲和力(绑定的核心数)
CPU 亲和力(CPU Affinity)指进程被限制运行的 CPU 核心集合,通过查看该信息可明确进程绑定的核心数量。
- 查看进程的 PID(假设目标进程 PID 为
1234):bashpidof target_process - 使用
taskset命令查看绑定的 CPU 核心:bashtaskset输出示例:plaintext
pid 1234's current affinity list: 0,1 # 表示绑定到 CPU 0 和 1 核心,共 2 个核心0,1表示核心编号(从 0 开始),数量即占用的 CPU 核心数。
方法三:通过
/proc 文件系统查看(适用于脚本或非交互场景)
- 查看进程的 CPU 亲和力文件:bash
/proc/1234/status Cpus_allowed_list输出示例:plaintext
Cpus_allowed_list: 0-1 # 表示允许运行在 CPU 0 和 1 核心,共 2 个核心- 若输出为
0,2,3,则表示绑定到 3 个核心(0、2、3)。
- 若输出为
关键区别说明
%CPU百分比:反映进程在所有 CPU 核心上的总占用率(如 200% 表示占用 2 个核心各 100%),但不直接显示绑定的核心数。- CPU 亲和力:明确进程被限制运行的核心集合,直接对应 “使用了几个 CPU 核心”(即使进程未完全占满核心,只要被绑定到 N 个核心,就视为使用了 N 个)。
总结
- 实时监控:用
top或htop查看%CPU百分比(超过 100% 时核心数 = 百分比 / 100,向上取整)。 - 精确绑定核心数:用
taskset -p pid或查看/proc/pid/status中的Cpus_allowed_list。
根据需求选择合适的方法即可。