8

Linux用のprocpsパッケージ、ユーティリティについてです。ps

各プロセス(スレッド)で最後に使用されたCPUの数を出力できますか?

更新:CPU時間(10秒)ではなく、CPU番号(CPU0、CPU5、CPU123)

4

4 に答える 4

25

psrps(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
于 2011-04-20T21:31:41.833 に答える
4

複数のプロセッサのどれですか?マンページによると、そのためのオプションは提供されていません。しかし、私のDebian安定システムでは、文書化されていないものを受け入れます-o cpu


ソースとの出力を見た後、ps Lあなたの答えは、cpuidまたはsgi_p出力オプション、それぞれ列IDCPUIDとPのいずれかであると思います。
また、「cpu」はoutput.cのこのメモに従って機能するはずですが、現在は「nop」出力pr_nop()に関連付けられています。

{"cpu", "CPU", pr_nop, sr_nop, 3, 0, BSD, AN|RIGHT}, /* FIXME ... HP-UX wants this as the CPU number for SMP? */

于 2011-04-20T14:49:56.947 に答える
3

また、過小評価されています:

mpstat -I ALL 1 | less -SR
于 2011-04-20T21:40:12.557 に答える