EN JA
CPUSET(1)
CPUSET(1) FreeBSD General Commands Manual CPUSET(1)

名称

cpusetプロセッサのセットを設定する

書式

cpuset [ -l cpu-list][ -s setid] cmd ...

cpuset [ -l cpu-list][ -s setid] -p pid

cpuset [ -c][ -l cpu-list] -C -p pid

cpuset [ -cr][ -l cpu-list][ -j jailid | -p pid | -t tid | -s setid | -x irq]

cpuset [ -cgir][ -j jailid | -p pid | -t tid | -s setid | -x irq]

解説

プロセッサセットをプロセスに割り当て、プロセッサの与えられたセットまたはリストに抑制されたコマンドを実行する、システムのプロセッサのバインディング、セットと利用可能なプロセッサに関する情報を問い合わせるために cpuset コマンドを使用することができます。

cpuset は、変更するかまたは問い合わせるターゲットを必要とします。ターゲットは、コマンド、プロセス ID、スレッド ID、cpuset ID、IRQ または jail ID として指定されます。 -g を使用して、ターゲットのセット ID またはマスクは、問合わされます。 -l または -s を使用して、ターゲットの CPU マスク、またはセット ID は、設定されます。ターゲットが指定されないなら、 cpuset は、それ自体を操作します。操作とターゲットのすべての組み合わせがサポートされるというわけではありません。例えば、利用者は、既存のセットの ID を設定できませんし、同時に、コマンドの問い合わせと開始をすることはできません。

各プロセスに適用可能な 2 つのセットとスレッド毎に 1 つのプライベートマスクがあります。システム中のあらゆるプロセスが、cpuset に属しています。デフォルトで、プロセスは、セット 1 で開始されます。マスクまたは ID は、 -c を使用して問合わされます。また、各スレッドには、割り当てられたセットの部分集合でなければならない、それで実行することができる CPU のプライベートマスクがあります。そして、最終的に、不変である、ルートセット、番号付された 0 があります。この最後のセットは、システムのすべての指定できる CPU のリストであり、 -r を使用して問合わされます。

コマンドを実行するとき、 -s で指定されたセットに結合し、そうでなければ、新しいセットが作成されます。さらに、コマンドのためのマスクは、 -l を使用して指定されます。 -c とともに使用されるとき、マスクは、スレッドのためのプライベートマスクよりむしろ供給されるか、または作成されたセットを変更します。

オプションは、次の通りです:

-C
新しい cpuset を作成しそのセットにターゲットプロセスを割り当てます。
-c
要求された操作は、ターゲットの指定子を通して利用可能な cpuset を参照するべきです。
-g
cpuset は、有効な CPU のリストか、 -i を使用してターゲットの ID のいずれかを印刷 (表示) します。
-i
-g オプションと共に使用されるとき、ターゲットの有効なマスクよりむしろ ID を印刷 (表示) します。
-j jailid
操作のターゲットとして jail ID を指定します。
-l cpu-list
ターゲットに適用するために CPU のリストを指定します。指定は、範囲のための '-' によって分離された数と個々の数を分離するためのコンマを含みます。“all”の特別なリストは、ルートセットからのすべての CPU を含むリストの場合に指定されます。
-p pid
操作のターゲットとして pid を指定します。
-s setid
操作のターゲットとしてセット ID を指定します。
-r
要求された操作は、ターゲットの指定子を通して利用可能なルートのセットを参照するべきです。
-t tid
操作のターゲットとしてスレッド ID を指定します。
-x irq
操作のターゲットとして IRQ を指定します。

終了ステータス

The cpuset utility exits 0 on success, and >0 if an error occurs.

使用例

CPU 0-4 を含めて新しいグループを作成して、それで /bin/sh を実行します:
cpuset -c -l 0-4 /bin/sh

<sh pid>で実行することができる CPU のマスクを問い合わせます:

cpuset -g -p <sh pid>

グループがまだ CPU 0-4 で実行することができる間に、CPU 0 と 2 で実行するために /bin/sh を制限します:

cpuset -l 0,2 -p <sh pid>

CPU 0 と 2 に制限するために /bin/sh が属する cpuset を変更します:

cpuset -l 0,2 -c -p <sh pid>

残りをアイドルのままにして、最初の 4 つの CPU だけを含むようするためにデフォルトで cpuset のすべてのスレッドを変更します:

cpuset -l 0-3 -s 1

/bin/sh が含まれる、cpuset の ID を印刷します:

cpuset -g -i -p <sh pid>

次のように設定された、他の pid でそれを管理できるように、指定された cpuset setidpid を移動します:

cpuset -s <setid> -p <pid>

CPU 0 と 2 に制限される新しい cpuset を作成し、 pid を新しいセットに移動します:

cpuset -C -c -l 0,2 -p <pid>

関連項目

cpuset(2)

歴史

cpuset コマンドは、 FreeBSD 7.1 ではじめて登場しました。

作者

Jeffrey Roberson <jeff@FreeBSD.org>
January 14, 2011 FreeBSD