ps
psr
を要求すると、その情報を提供できます 列 (または -F
を使用) それを含むフラグ)。
例:
$ ps -F $$
UID PID PPID C SZ RSS PSR STIME TTY STAT TIME CMD
me 6415 6413 0 5210 2624 2 18:52 pts/0 SN 0:00 -su
または:
$ ps -o pid,psr,comm -p $$
PID PSR COMMAND
6415 0 bash
私のシェルは、最初のコマンドを実行したときは CPU 2 で実行され、2 番目のコマンドを実行したときは CPU 0 で実行されていました。プロセスは非常に迅速に CPU を変更する可能性があるため、実際に表示される情報は、本質的には既に古いものであることに注意してください。
このスーパー ユーザーの質問の回答にさらに詳しい情報があります:
Linux:プロセスがロードされているプロセッサ番号を知るコマンド?
top
で procps
から (一般に、最近の Linux ディストリビューションのデフォルト)、top
、 f を押します 、 P = Last User CPU (SMP)
に移動します スペースを押します 選択します (たとえば、COMMAND
の前にフィールドを移動することもできます 右のフィールド キーを押してから上下に移動します)。 q メイン画面に戻ります (明示的に 1 つのプロセッサにとどまるように構成しない限り、プロセスがプロセッサからプロセッサへ移動するのが表示されます)。 W を押すことができます それをデフォルトとして保存します。
? を押します
コマンド taskset
あなたが探しているものです:
taskset - プロセスの CPU アフィニティを取得または設定
例
$ taskset -p 12345
pid 12345's current affinity mask: f
f
のマスク すべてのプロセッサを意味する 0x00000001
プロセッサ 0 になります。
$ taskset -c -p 24389
pid 24389's current affinity list: 0-3
CPU をリスト形式で表示します。この例では、ラップトップに 4 つのコアがあります。
詳細については、man ページを参照してください。