• ベストアンサー

linuxでプロセスが動いているCPUナンバーを知りたい

linuxでプロセスが動いているCPUナンバーを知りたい 件名の通り、linuxでプロセスが動いているCPUナンバーを知りたいとおもっています。 psコマンドですと、プロセスID等はでますが、 デュアルコア、クワッドコアのどのcoreでプロセスが動いているのかを確認したいので すが、表示できません。 なにか方法がありますでしょうか? CPU(core)ナンバーとプロセスIDが結びつけば問題ありません。 mpstat -P 0 は使用率しかでなく、プロセスが見えませんでした。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

Linux って, 各プロセスに対して常に同じコアを割り当てるんでしたっけ? そうじゃないとすると「調べた時点での割り当て」はわかるけど, その次にはどうなってるかわからないからあんまり意味があるようには思えないのですが....

s1756
質問者

補足

補足をおこないます。 A,B,C,Dというソフトが同時に起動した場合にどのCPUに割り当てられたかのスポットをしりたいと 思っております。 例えば、 A,B,C → CPU0 D → CPU1 みたいな感じです。

その他の回答 (2)

回答No.3

そんなん TOP コマンドでわかるっちゃろ? 使い方/見方は 自分で検索してな

s1756
質問者

お礼

申し訳ありませんが、topで出ないので質問しつもんしています。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

プロセスは、メモリやファイルディスクリプタ等などのリソースの割り当て単位ですが、CPUの割り当て単位はその下のスレッド(タスク)なので、 「このプロセスが動いているCPUコア番号」 という概念自体が存在しないと思います。 ただ、多くのプロセスは1つのスレッドしか持たないので、仮にプロセスA,B,Cがそれぞれ1スレッドだとします。 で、とあるデュアルコア(CPU0,CPU1)のシステムでスレッドA,B,Cを動かし、プログラムXでそれぞれのスレッドのCPU番号を調べられたとします。Xが動いている以上それは例えば、CPU0で動いているわけで、その瞬間には、スレッドA,B,Cは、高々どれか1つがCPU1で動いており、その他のスレッドはCPU待ちと言うことになります。 つまり、そういうことは意味がないと言うことです。そもそも、何のためにそう言うことを調べたいと思いついたのかを掘り下げれば、問題の解決が図れるかと思いますよ。

s1756
質問者

お礼

ありがとうございます。 CPUに割り付けの概念はあります。実際におこなっていますが、そのCPU割り付けを行わないで実行した場合に、そのCPUに割りつけられるかが見えない次第です。 割り付けを行っても、最初の割り付け時にかどのcPUに割りつけたが分からなく、複数のユーザが利用していると、ユーザにヒアリングしてしか聞くしか手立てがなく、システム的に見えていないのです。

関連するQ&A