Linux用のprocps
パッケージ、ユーティリティについてです。ps
各プロセス(スレッド)で最後に使用されたCPUの数を出力できますか?
更新:CPU時間(10秒)ではなく、CPU番号(CPU0、CPU5、CPU123)
psr
ps(1) の man ページには、次のフィールドを使用できると書かれています。
psr PSR processor that process is currently assigned to.
$ ps -o pid,psr,comm
PID PSR COMMAND
7871 1 bash
9953 3 ps
またはcpuid
、同じことを行うフィールドを使用することもできます。
$ ps -o pid,cpuid,comm
PID CPUID COMMAND
7871 1 bash
10746 3 ps
2 つの名前の理由は、Solaris ( psr
) およびNetBSD/OpenBSD ( ) との互換性のためですcpuid
。
スレッドも取得するには、-L
オプション (およびlwp
を使用している場合はフィールド-o
) を追加します。
スレッドなし:
$ ps -U $USER -o pid,psr,comm | egrep 'chromi|PID' | head -4
PID PSR COMMAND
6457 3 chromium-browse
6459 0 chromium-browse
6461 2 chromium-browse
スレッド付き:
$ ps -U $USER -L -o pid,lwp,psr,comm | egrep 'chromi|PID' | head -4
PID LWP PSR COMMAND
6457 6457 3 chromium-browse
6457 6464 1 chromium-browse
6457 6465 2 chromium-browse
通常のフィールド-P
に追加する、文書化されていないオプションもあります。psr
$ ps -U $USER -LP | egrep 'chromi|PID' | head -4
PID LWP PSR TTY TIME CMD
6457 6457 3 ? 00:01:19 chromium-browse
6457 6464 1 ? 00:00:00 chromium-browse
6457 6465 2 ? 00:00:00 chromium-browse
複数のプロセッサのどれですか?マンページによると、そのためのオプションは提供されていません。しかし、私のDebian安定システムでは、文書化されていないものを受け入れます-o cpu
ps L
あなたの答えは、cpuid
またはsgi_p
出力オプション、それぞれ列IDCPUIDとPのいずれかであると思います。
{"cpu", "CPU", pr_nop, sr_nop, 3, 0, BSD, AN|RIGHT}, /* FIXME ... HP-UX wants this as the CPU number for SMP? */
また、過小評価されています:
mpstat -I ALL 1 | less -SR