插件窝 干货文章 linux怎么查看进程在哪个cpu上

linux怎么查看进程在哪个cpu上

进程 使用 核心 运行 94    来源:    2025-05-03

在Linux系统中,可以通过以下几种方法查看进程运行在哪个CPU核心上:

方法1:使用 top 命令

  1. 运行 top 命令
  2. f 进入字段选择界面
  3. 使用方向键找到 P (最后使用的CPU核心)
  4. 按空格选中,然后按 q 返回
  5. 现在可以看到每个进程运行的CPU核心编号(显示为0,1,2...)

方法2:使用 htop 命令(需安装)

  1. 安装:sudo apt install htop (Ubuntu/Debian) 或 sudo yum install htop (CentOS/RHEL)
  2. 运行 htop
  3. 在顶部可以看到CPU核心使用情况,每个进程的CPU核心会显示在 CPU

方法3:使用 ps 命令

ps -eo pid,psr,comm | grep 进程名

或查看特定进程:

ps -o psr -p 进程PID

其中 PSR 列显示的就是当前运行的CPU核心编号(从0开始)

方法4:使用 taskset 命令

taskset -pc 进程PID

输出示例:

pid 1234's current affinity list: 0-3

这表示进程可以在CPU 0-3上运行,但不会显示当前正在使用哪个核心

方法5:查看 /proc 文件系统

cat /proc/进程PID/status | grep Cpus_allowed

或更详细的信息:

cat /proc/进程PID/stat

第39个字段就是最后运行的CPU核心编号(从0开始)

方法6:使用 mpstat 命令(查看所有CPU核心的使用情况)

mpstat -P ALL 1

注意事项:

  1. CPU核心编号从0开始
  2. 在多核系统中,进程可能会在不同核心间迁移(除非被固定)
  3. 要固定进程到特定CPU核心,可以使用 tasksetcpuset 命令

这些方法可以帮助你确定进程当前运行在哪个CPU核心上,以及它被允许在哪些核心上运行。