質問: Linux(CentOS、RedHat、Fedoraなど)に、現在特定のプロセスを実行しているCPUコアを見つけることができるコマンドがあるかどうか知りたいのですが。
回答:
はい、特定のプロセス識別番号を現在実行しているCPUコアを識別するには少なくとも4つの方法があります。実例を示すために、 crondについて考えてみましょう。 プロセスID24868のプロセス。
コマンド1: psを使用する コマンド
psを使用できます どのプロセスがどのCPUコアに現在割り当てられているかを調べるコマンド。 PSRに注意してください psのフィールド コマンド出力。
$ ps -o pid,psr,comm -p 24868 PID PSR COMMAND 24868 2 crond
上記のコマンド出力は、PID 24868(crond)のプロセスがCPUコア2に割り当てられていることを示しています。
注: カーネルは任意のCPUコアでプロセスをスケジュールし、あるコアから別のコアにプロセスを変更し続ける可能性があります。
コマンド2: topを使用する コマンド
topを使用することもできます 指図。手順は次のとおりです。
$ top -p 24868
「上部」の出力画面で、「 f」を押します ‘を追加して「最後に使用したCPU(SMP) 」をクリックし、「 j」を押します ‘(最後に使用されたCPU(SMP)行のアスタリスクに注意してください)。完了すると、「P」列に各プロセスを実行するCPUコアIDが表示されます。
コマンド3: htopを使用する
htopのインストール:
$yum install htop Installed: htop.x86_64 0:1.0.1-2.el6 Complete!
htopを起動します コマンドを押してF2キーを押し、セットアップに入ります。 。 [設定]列で[列]を選択し、[使用可能な列]で[プロセッサ]を選択します。完了したら、F5キーを押して列を追加し、F10キーを押して保存します。
$ htop
コマンド4:タスクセットの使用 コマンド
タスクセットを使用できます 実行中のプロセスのCPUアフィニティを取得するコマンド。
$ taskset -c -p 24868 pid 24868's current affinity list: 0-7
上記のコマンド出力は、スケジューラーがプロセスをシステム内のCPUのセット(0〜7)にバインドすることを示しています。
CPUコアとそのIDを一覧表示します:
以下のコマンドを使用すると、システム内のCPUコアのリストを検索でき、top、htop、taskset、およびpsコマンドによって返されるプロセッサIDとのマッピングに役立ちます。
$ cat /proc/cpuinfo
以上です!