Ubuntuの各CPUコアですべてのプロセスを実行する方法は?

Ubuntuの各CPUコアですべてのプロセスを実行する方法は?

私は48のCPUコアを持つUbuntu14.04サーバーを使用しています。 sar情報を見ると、1つのコアがCPU使用率が高いことがわかります。だから、そのコアでどのプロセスが実行されているのか知りたいです。 Ubuntuの各CPUコアですべてのプロセスを実行するにはどうすればよいですか?

答え1

ps -aeF以下を使用してこれを行うことがCできます。

UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0  2015 ?        00:08:07 /sbin/init

またはを使用して列htopを表示するように設定しPROCESSOR

ここに画像の説明を入力してください。

CPU アフィニティを設定するには、次を使用できます。ワークセット注文する

答え2

Normalは、top最後に使用したCPUも表示できます。

ホーム画面を表示しながら、を押して下矢印を押してから、またはスペースバーを使用してfフィールド管理画面に入る必要があります。または、終了を押してホーム画面に戻ります。P = Last Used CPU (SMP)dq

出力の右端のP列が気に入らない場合は、フィールド管理画面でP列を上に移動する必要があります。

答え3

これが古くなったことを認識してください。しかし、psコマンドを使用して、どのプロセスがどのコアを使用しているかを確認したい人のために必要な列はpsrです。 CはCPU使用率です。

コア番号は0-Nです。以下を使用してコアの詳細を確認できます。

cat /proc/cpuinfo

4つのコアがあり、4番目のコアを使用するすべてのプロセスを見たいとしましょう。

CORENUM=3; ps -e -o pid,psr,cpu,cmd | grep -E  "^[[:space:]][[:digit:]]+[[:space:]]+${CORENUM}"

上記のコマンドを分析してください。

変数「CORENUM」を生成し、「3」(4番目のコア)に設定します。セミコロンでステートメントを終了します(ここでEnterを押すことができます)。

次のようにpsコマンドを実行します。 -e=すべてのプロセスを選択 -o=カスタム形式。 1 つ以上のコンマで区切られた書式指定子で構成されます。これは、ps man(「man ps」)ページの標準書式指定子セクションにあります。

(スラッシュを使用してマニュアルページで検索してください)。

元のリストを表示するには、「L」オプション(「-」を除く)を入力します。

ps L

したがって、ここでは、カスタムフォーマットにプロセスID、プロセッサ、CPU使用率、最後にコマンドをリストします。

その後、grepにパイプされ、-Eオプションを使用して拡張regxを有効にして、CORENUM変数に格納されているCPU番号に関連するプロセスのみを正確に出力しようとします。

関連情報