ホームページ >運用・保守 >Linuxの運用と保守 >Linux でプロセスがどの CPU 上にあるかを確認する方法
表示方法: 1. プロセスがどの CPU で実行されているかを表示できる top コマンドを使用します。構文は "top -p プロセス番号" です。 2. 表示するために使用される taskset コマンドを使用します。プロセスまたはスレッド。どの CPU で実行されているかを示します。構文は「tasksset -p プロセス番号」です。
#このチュートリアルの動作環境: linux7.3 システム、Dell G3 コンピューター。
方法 1: top コマンドを使用する
top コマンドはどの CPU を表示できますプロセスが実行されている CPU が時間の経過とともに変化するかどうかを継続的に監視できます。
使用手順:
top -p [进程号],例如 top -p 3000
「F」キーを押し、上下キーを使用して P = 最後に使用した CPU を選択し、スペース バーを押します。「*」は選択を示します。を押して「 q」終了を押します。
方法 2: taskset コマンドを使用する
taskset は、特定のプロセス (またはスレッド) がどの CPU で実行されているかを確認し、特定のプログラムを実行することもできます。特定の CPU
1 つまたは複数の CPU のタスクセット パラメータ オプション:
(1) -p、--pid: 既存の PID を操作し、新しいタスクを開始しません
(2 ) -c, --cpu-list: ビットマスクの代わりにプロセッサ番号のリストを指定します。リストには、カンマや範囲で区切って複数の項目を含めることができます。たとえば、0、5、7、9 ~ 11 です。
1) プロセスが実行されている CPU を表示します: -p パラメーター
例 1:
[root@localhost ~]# taskset -p 21184
表示結果:
pid 21184’s current affinity mask: ffffff
注: 21184はプロセス番号です。結果を表示する ffffff は実際には、バイナリの下位 24 ビットがすべて 1 であるビットマスクです。各 1 は 1 つの CPU に対応し、プロセスが 24 個の CPU で実行されていることを示します。
例 2:
[root@localhost ~]# taskset -p 2030
表示結果:
pid2030’s current affinity mask: f
注: sshd が 4 つの CPU をランダムにオンにすることを意味します。
例 3:
[root@localhost ~]# taskset -p 2726
表示結果:
pid 2726’s current affinity mask: 3
注: 表示された 10 進数 3 を 2 進数に変換すると、下位 2 つが 1 となり、それぞれの 1 が に対応します。 CPU が 1 つなので、プロセスは 2 CPU で実行されます。
*注: *CPU ラベルは 0 から始まるため、cpu1 は 2 番目の CPU を表します (最初の CPU ラベルは 0)。
変換方法について
8コアのCPU ID:7 6 5 4 3 2 1 0
10の対応する10進数:128 64 32 16 8 4 2 1
16 進数の 16 個の数値は、0、1、2、3、4、5、6、7、8、9、A、B、C、D、E. F
は、各 16 進 2 進数に対応します: 0=0000、1=0001、2=0010、3=0011、4=0100、5=0101、6=0110、7=0111、8=1000、9= 1001,A=1010,
B=1011,C=1100,D=1101,E=1110,F=1111
次に、たとえば、pid 8987 の現在のアフィニティがマスク: ff ff のように表示されます。は 16 進数で、バイナリに変換すると 11111111 になります。これは、sshd が 8 つの CPU で実行されることを意味します。それぞれの値に対応しています!
たとえば、16 進数の 40 をバイナリ 01000000 に変換すると、7 番目の CPU で動作することになります。
推奨される学習: Linux ビデオ チュートリアル
以上がLinux でプロセスがどの CPU 上にあるかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。