- ベストアンサー
linuxでプロセスが動いているCPUナンバーを知りたい
linuxでプロセスが動いているCPUナンバーを知りたい 件名の通り、linuxでプロセスが動いているCPUナンバーを知りたいとおもっています。 psコマンドですと、プロセスID等はでますが、 デュアルコア、クワッドコアのどのcoreでプロセスが動いているのかを確認したいので すが、表示できません。 なにか方法がありますでしょうか? CPU(core)ナンバーとプロセスIDが結びつけば問題ありません。 mpstat -P 0 は使用率しかでなく、プロセスが見えませんでした。 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Linux って, 各プロセスに対して常に同じコアを割り当てるんでしたっけ? そうじゃないとすると「調べた時点での割り当て」はわかるけど, その次にはどうなってるかわからないからあんまり意味があるようには思えないのですが....
その他の回答 (2)
- nizyuuichi
- ベストアンサー率24% (137/562)
そんなん TOP コマンドでわかるっちゃろ? 使い方/見方は 自分で検索してな
お礼
申し訳ありませんが、topで出ないので質問しつもんしています。
- notnot
- ベストアンサー率47% (4900/10358)
プロセスは、メモリやファイルディスクリプタ等などのリソースの割り当て単位ですが、CPUの割り当て単位はその下のスレッド(タスク)なので、 「このプロセスが動いているCPUコア番号」 という概念自体が存在しないと思います。 ただ、多くのプロセスは1つのスレッドしか持たないので、仮にプロセスA,B,Cがそれぞれ1スレッドだとします。 で、とあるデュアルコア(CPU0,CPU1)のシステムでスレッドA,B,Cを動かし、プログラムXでそれぞれのスレッドのCPU番号を調べられたとします。Xが動いている以上それは例えば、CPU0で動いているわけで、その瞬間には、スレッドA,B,Cは、高々どれか1つがCPU1で動いており、その他のスレッドはCPU待ちと言うことになります。 つまり、そういうことは意味がないと言うことです。そもそも、何のためにそう言うことを調べたいと思いついたのかを掘り下げれば、問題の解決が図れるかと思いますよ。
お礼
ありがとうございます。 CPUに割り付けの概念はあります。実際におこなっていますが、そのCPU割り付けを行わないで実行した場合に、そのCPUに割りつけられるかが見えない次第です。 割り付けを行っても、最初の割り付け時にかどのcPUに割りつけたが分からなく、複数のユーザが利用していると、ユーザにヒアリングしてしか聞くしか手立てがなく、システム的に見えていないのです。
補足
補足をおこないます。 A,B,C,Dというソフトが同時に起動した場合にどのCPUに割り当てられたかのスポットをしりたいと 思っております。 例えば、 A,B,C → CPU0 D → CPU1 みたいな感じです。