回答:
taskset <affinity mask> -p <process>
すなわち
taskset 1 -p 12345
プロセッサ/コア1のみを使用するようにプロセス12345を設定するには
ビットマスクは、リスト(つまり、4 +コアシステムのコア1 3および4を使用する場合は1,3,4)または16進数のビットマスク(0x0000000Dはコア1のみの場合は1,3,4、0x00000001)です。
taskset
通常はというパッケージにありますshedutils
。
編集:ほとんど忘れてしまいました...既存のプロセスに変更するのではなく、新しいコマンドのアフィニティを設定する場合は、次のコマンドを使用します。
taskset <mask> <program> [<arg1>]...[<argN>]
taskset(util-linux 2.13-pre7)の使用法:taskset [オプション] [マスク| cpu-list] [pid | cmd [args ...]]プロセスのアフィニティを設定または取得します
-p、-pidは既存の指定されたpidを操作します-c、-cpu-list表示およびcpusをリスト形式で指定します-h、-helpこのヘルプを表示します-v、-version出力バージョン情報
デフォルトの動作では、新しいコマンドを実行します:taskset 03 sshd -b 1024既存のタスクのマスクを取得できます:taskset -p 700または設定:taskset -p 03 700リスト形式では、コンマ区切りのリストを使用しますマスク:taskset -pc 0,3,7-11 700リスト形式の範囲はストライド引数を取ることができます。たとえば、0-31:2はマスク0x55555555と同等です
常に必要に応じてサーバーを最適化できます