Linux
確定程序正在執行的特定處理器
我可以訪問 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,因此您實際看到的資訊基本上已經過時了。
此超級使用者問題的答案中的更多資訊: