方法二

'top' 是一个很好的工具,它也可以为我们提供这些信息。

从终端执行“top”

按“f”进入如下字段菜单

在菜单显示时按“J”,这将显示上次使用的 CPU,
点击“回车键”。

现在我们应该在top命令输出中看到新的1列。

在Linux中如何找出进程运行在哪个内核上

Linux中有许多进程在单核上运行,而许多进程将根据可用性在不同的核之间切换。

通过以下两种方法,您可以发现进程是在单核上连续运行,还是根据可用性在所有可用核之间切换。

方法一

可以使用下面的命令

# ps -o pid,psr,time,comm -p $(pgrep -x fio)
  PID PSR     TIME COMMAND
 8453   4 00:00:00 fio
 8455   8 00:00:01 fio

这里的“psr”列显示了进程最后使用的核心。
我已经使用 pgrep 来 grep 以“fio”的名称运行的进程的 pid。
每次我点击相同的命令时,我都会观察到处理器正在改变。

# ps -o pid,psr,time,comm -p $(pgrep -x fio)
  PID PSR     TIME COMMAND
 8453   4 00:00:00 fio
 8455   8 00:00:03 fio
# ps -o pid,psr,time,comm -p $(pgrep -x fio)
  PID PSR     TIME COMMAND
 8453   9 00:00:00 fio
 8455   8 00:00:03 fio

因此,为了监视一段时间,我可以在 while 循环中运行它,这里我使用了 5 秒的睡眠时间。

# while true; do echo -ne "`ps -o pid,psr,time,comm -p $(pgrep -x fio) `t"; date;sleep 5;done
  PID PSR     TIME COMMAND
 8453   4 00:00:00 fio
 8455   9 00:00:07 fio  Fri Jan  7 18:47:13 IST 2015
  PID PSR     TIME COMMAND
 8453   4 00:00:00 fio
 8455   9 00:00:07 fio  Fri Jan  7 18:47:18 IST 2015
  PID PSR     TIME COMMAND
 8453   4 00:00:00 fio
 8455   9 00:00:07 fio  Fri Jan  7 18:47:23 IST 2015
  PID PSR     TIME COMMAND
 8453   4 00:00:00 fio
 8455   9 00:00:07 fio  Fri Jan  7 18:47:28 IST 2015
  PID PSR     TIME COMMAND
 8453   4 00:00:00 fio
 8455   9 00:00:07 fio  Fri Jan  7 18:47:33 IST 2015
  PID PSR     TIME COMMAND
 8453   5 00:00:00 fio
 8455   9 00:00:07 fio  Fri Jan  7 18:47:38 IST 2015
日期:2020-06-02 22:18:31 来源:oir作者:oir