Linux

確定程序正在執行的特定處理器

  • December 16, 2016

我可以訪問 Linux 集群的 8 核節點。登錄到節點後,我可以使用以下命令查看處理器列表:

more /proc/cpuinfo

在我的 8 核節點中,處理器編號從 0 到 7。每個處理器都是 Intel Xeon CPU (E5430 @ 2.66GHz)。

現在假設我foo用一些參數呼叫程序args

foo args

該程序foo需要很長時間才能執行(例如,數小時或數天)。呼叫foo後,是否可以確定正在執行的特定處理器(即 0 到 7)foo?該top程序向我顯示了程序 ID 和類似資訊,但我沒有看到處理器編號。有這樣的資訊嗎?

ps如果您要求該psr列(或使用-F包含該列的標誌),則可以為您提供該資訊。

前任:

$ ps -F $$
UID        PID  PPID  C    SZ   RSS PSR STIME TTY      STAT   TIME CMD
me        6415  6413  0  5210  2624   2 18:52 pts/0    SN     0:00 -su

或者:

$ ps -o pid,psr,comm -p $$
 PID PSR COMMAND
6415   0 bash

當我執行第一個命令時,我的 shell 在 CPU 2 上執行,而當我執行第二個命令時,我的 shell 在 CPU 0 上執行。請注意,程序可以非常非常快速地更改 CPU,因此您實際看到的資訊基本上已經過時了。

此超級使用者問題的答案中的更多資訊:

Linux:知道載入程序的處理器編號的命令?

引用自:https://unix.stackexchange.com/questions/79520