Linuxでは、マシンのコアがいくつアクティブであるかをどのように確認するのですか?


13

Linuxでは、マシンのコアがいくつアクティブであるかをどのように確認するのですか?このテストはAndroidでも機能すると思います。複数のコアがアクティブになっているかどうかを知る必要があります。プロセスに多数のスレッドを作成させることで、これをテストするのは不思議でした。スレッドがそれがどのプロセッサにあるかを照会することは可能ですか?そうすれば、高負荷で複数のコアが使用されるかどうかを知ることができます。私が正しい軌道に乗っているかどうかはわかりません。


「アクティブ」とは、現在使用されているコアの数を意味すると思いますか?または、システムのコア数を意味しますか?
ミケル

はい、現在何人が使用されているか

回答:


19

を使用topして、各コアの使用率をリストできます。必要に応じて1を押して、CPUの行をコアごとに個別の行に分割します。

各プロセスで最後に使用したコアを示す列を追加することもできます。fを押してフィールドリストを表示し、jを押して「P」列をアクティブにします。次に、スペースを押してライブビューに戻ります。


だから、おそらく私は多くのスレッドを生成するプログラムを作成して実行し、コンソールで「トップ」コマンドを実行する必要がありますか?
-likejudo

うまくいくと思う。topスレッドを個別にリストするには、Hを押します。または、無限ループを使用してプログラムを作成し、何度も実行することもできます。
ブライアン

たとえば、100個のスレッドを生成するプログラムを作成します。各スレッドは、長く集中的な計算を実行します。Java(Android)で記述した場合、JVM / KVMが異なるコアでスレッドを実行し、すべてのコアで実行するという保証はありますか?
-likejudo

1
私は知りません-あなたの実験がそれを理解することになっているのではないでしょうか?
ブライアン

使用するプロセッサコアの数を制限するというプログラムをテストする必要があります。さらに検索します。ありがとう!
-likejudo

6

pspsrジョブが実行されているプロセッサを通知するフィールドがあります。

したがって、次のようなものを使用できます。

ps -e -o psr= | sort | uniq | wc -l

psもちろん、このように実行するだけで、少なくとも1つのコアがアクティブになります。

おそらくこれを実行する方が良いでしょう:

tmp=/tmp/ps.$$
ps -e -o psr= > /tmp/ps.$$
sort -u "$tmp" | wc -l
rm "$tmp"

その方法は、sortwc数を増加させません。


システムに16個のコアがあり、それらの一部を使用している人がいない場合はどうなりますか?

使用されていないため、0が出力されます。それが質問が求めていることだと思います。
ミケル

質問に対する新しいコメントが見つかりませんでした。

1
もちろん、実行するpsことにより、少なくとも1つのコアをアクティブにします。;-)
ミケル

ご回答有難うございます。欠点は、複数のコアがアクティブになっているかどうかを知る必要があることです。プロセスに多くのスレッドを作成させることで、これをテストするのは不思議でした。スレッドがそれがどのプロセッサにあるかを照会することは可能ですか?そうすれば、高負荷で複数のコアが使用されるかどうかを知ることができます。私が正しい軌道に乗っているかどうかわかりません。

3
htop

このコマンドは、ubuntuとcentosの両方で適切に機能し、CPUの数と使用方法をグラフィカルに表示します。

Centosの場合:

yum install htop

Ubuntuの場合:

apt-get install htop

2

以下を試してください:

cat /proc/cpuinfo

Android Javaの例へのリンクは次のとおりです。


1
「アクティブ」とは、Anilが現在使用されているコアの数とアイドル状態のコアの数、つまりシステムのビジー状態の概算を意味すると想定しています。 /proc/cpuinfoシステムのコア数を伝えるだけでcat /proc/cpuinfo、ハイパースレッディングを考慮する以上のことをする必要があります。
ミケル

OK-それは明確ではありませんでしたが、あなたは正しいです。
アミールアフガニ

0

cat / sys / devices / system / cpu / possibleまたはcat / sys / devices / system / cpu / onlineを使用できます。主に、特定のプログラムを実行するCPUを分離した場合が考えられます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.