Go to main content

マニュアルページ セクション 8: システム管理コマンド

印刷ビューの終了

更新: 2018年8月8日
 
 

psrset(8)

名前

psrset - pset の作成と管理

形式

psrset -a [-F] pset_id processor_id...
psrset -b pset_id pid [/lwpid]...
psrset -c [-F] [processor_id]...
psrset -d pset_id...
psrset -e pset_id command [argument(s)]
psrset -f pset_id
psrset [-i] [pset_id]...
psrset -n pset_id
psrset -p [processor_id]...
psrset [-q] [pid [/lwpid]]...
psrset -Q [pset_id]...
psrset -r [-F] processor_id...
psrset -u pid [/lwpid]...
psrset -U [pset_id]...

説明

psrset ユーティリティーは、pset の管理を制御します。pset を使用すると、単一のプロセッサではなくプロセッサグループにプロセスまたは LWP をバインドできます。pset に割り当てられたプロセッサは、その pset にバインドされている LWP だけを実行できます。

このコマンドは、リソースプールフレームワークによって作成された pset の変更またはバインドを行うためには使用できません。これらの pset は「プール pset」と呼ばれます。これには、プール pset にすでに割り当てられているプロセッサの割り当てが含まれます。プール pset を変更して、バインドするには、pooladm(8)poolcfg(8)、および poolbind(8) を使用します。

デフォルトのプロセッサセットのほかに、いつでも各プロセッサセットにバインドできるのは、単一のゾーンのプロセスや LW だけです。

オプション

サポートしているオプションは、次のとおりです。

–a

指定されたプロセッサを指定のプロセッサセットに割り当てます。–F オプションも指定されている場合は、指定のプロセッサにバインドされているすべての LWP がバインド解除されてから、pset が変更されます。

このオプションを使用できるのは、PRIV_SYS_RES_CONFIG 特権を持つユーザーだけです。

ターゲット pset はプール pset にはできません。さらに、プール pset にすでに割り当てられている指定されたプロセッサは、psrset(8) によって pset に割り当てることはできません。プール pset に割り当てられたプロセッサを操作するには、プールユーティリティーを使用します。poolcfg(8) を参照してください。

–b

指定されたプロセスの LWP のすべてまたは一部を、指定の pset にバインドします。

pset にバインドされている LWP は、そのセット内のプロセッサ上でのみ実行されます。プロセスをバインドできるのは、空でない pset、つまり、プロセッサが割り当てられている pset だけです。

バインドは継承されるため、バインドされた LWP によって作成される新しい LWP およびプロセスには、同じバインドが設定されます。たとえば、対話型シェルをプロセッサにバインドすると、そのシェルによって実行されるすべてのコマンドがバインドされます。

このオプションを使用できるのは、PRIV_SYS_RES_CONFIG 特権を持つユーザーだけです。

psrset(8) によって作成された pset のみが有効なバインドターゲットです。プール pset は、有効なバインディングターゲットではありません。poolcfg(8) および poolbind(8) を参照してください。

dedicated-cpu を使用しているか、プール pset にバインドされているゾーンは、デフォルトの pset、psrset(8) によって作成された pset、その他のプール pset などのほかの pset に、個々のプロセスやスレッドがバインドされていない可能性があります。そのようなゾーンに属するプロセスまたはスレッドのバインドは失敗します。

–c

新しい pset を作成し、新しいプロセッサセット ID を表示します。–F オプションも指定されている場合は、指定のプロセッサにバインドされているすべての LWP がバインド解除されてから、作成される pset に割り当てられます。

プロセッサのリストが指定されている場合、それらのプロセッサを pset に割り当てることも試みられます。これが成功した場合、pset に LWP がバインドされるまで、プロセッサはアイドル状態になります。このオプションを使用できるのは、PRIV_SYS_RES_CONFIG 特権を持つユーザーだけです。

プール pset にすでに割り当てられている指定されたプロセッサは、psrset(8) によって pset に割り当てることはできません。プール pset に割り当てられたプロセッサを操作するには、プールユーティリティーを使用します。poolcfg(8) を参照してください。

同時にアクティブ (作成済みで破棄されていない) にできる pset の数は限られています。この制限は、システム内のプロセッサ数より常に大きくなります。最大数の pset がすでにアクティブになっているときに –c オプションを使用すると、コマンドは失敗します。

LC_MESSAGES ロケールカテゴリで「C」ロケールが指定されている場合、–c オプションの出力の 1 行目には次の形式が使用されます。ほかのロケールでは、ロケールに対応する適切な文字列で文字列 createdprocessor、および set が置き換えられる場合があります。


"created processor set %d\n" processor set ID
–d

指定された pset を削除し、この pset に関連付けられたすべてのプロセッサおよびプロセスを解放します。

このオプションを使用できるのは、PRIV_SYS_RES_CONFIG 特権を持つユーザーだけです。

psrset(8) によって作成された pset のみが有効なターゲットです。

–e

指定された pset でコマンドを (オプションの引数付きで) 実行します。

コマンドプロセスとその子プロセスは、pset 内のプロセッサによってのみ実行されます。

このオプションを使用できるのは、PRIV_SYS_RES_CONFIG 特権を持つユーザーだけです。

psrset(8) によって作成された pset のみが有効なターゲットです。

–f

指定された pset 内のすべてのプロセッサに対して割り込みを無効にします。psradm(8) を参照してください。

セット内の一部のプロセッサの割り込みを無効にできない場合、その他のプロセッサの割り込みは無効にされ、コマンドはエラーを報告してゼロ以外の終了ステータスを返します。

このオプションを使用できるのは、PRIV_SYS_RES_CONFIG 特権を持つユーザーだけです。

–F

指定されたプロセッサにバインドされているすべてのスレッドをバインド解除して、指定された pset の操作を強制的に実行します。このオプションと組み合わせて使用できるのは –a–c、または –r オプションだけです。そのような操作によってどのスレッドに影響が及ぶかを調べるために、管理者は pbind(8)–Q オプションを使用することをお勧めします。

–i

指定された各 pset に割り当てられているプロセッサのリストを表示します。引数が指定されていない場合は、すべての pset およびそれらに割り当てられているプロセッサのリストが表示されます。psrset コマンドにオプションが指定されていない場合も、これがデフォルトの動作です。

–n

指定された pset 内のすべてのプロセッサに対して割り込みを有効にします。psradm(8) を参照してください。

このオプションを使用できるのは、PRIV_SYS_RES_CONFIG 特権を持つユーザーだけです。

–p

指定されたプロセッサリストの pset 割り当てを表示します。引数が指定されていない場合は、システム内のすべてのプロセッサについて pset 割り当てが表示されます。

–q

指定されたプロセスまたはすべてのプロセスの pset バインディングを表示します。プロセスがバインドの異なる複数の LWP で構成されていて、LWP が明示的に指定されていない場合は、バインドされている LWP の 1 つについてのみバインドが表示されます。プロセス ID の後ろに「/lwpids」を付加することにより、一部の LWP のバインドを表示できます。複数の LWP を選択するには、区切り記号「-」と「,」を使用します。「使用例」を参照してください。

–Q

指定されたプロセッサセットのリストにバインドされている LWP、または pset がバインドされているすべての LWP を表示します。

–r

一連のプロセッサをその現在のプロセッサセットから削除します。削除されたプロセッサは、リソースプールフレームワーク内のデフォルト pset とも呼ばれる、プロセッサの一般プールに戻されます。

pbind(8) を使用して LWP がバインドされたプロセッサは、–F オプションを使用して、pset に割り当てたり、pset から削除したりできます。

このオプションを使用できるのは、PRIV_SYS_RES_CONFIG 特権を持つユーザーだけです。

ターゲット pset はプール pset 内には存在できません。プール pset に割り当てられたプロセッサを操作するには、プールユーティリティーを使用します。poolcfg(8) を参照してください。

–u

指定されたプロセスの一部またはすべての LWP の pset バインディングを削除して、それらが pbind によって個別のプロセッサにバインドされていない場合は任意のオンラインのプロセッサで実行できるようにします。

PRIV_SYS_RES_CONFIG 特権を持つユーザーは、任意のアクティブな pset から任意のプロセスまたは LWP をバインド解除できます。ほかのユーザーは、PSET_NOESCAPE 属性が設定されていない pset からプロセスおよび LWP をバインド解除できます。さらに、ユーザーには影響を受けるプロセスを制御するための権限が必要で、ユーザーの実ユーザー ID または実効ユーザー ID が、ターゲットプロセスの実ユーザー ID または保存されたユーザー ID と一致する必要があります。

dedicated-cpu を使用しているか、プール pset にバインドされているゾーンでは、個々のプロセスまたはスレッドがバインド解除されていない可能性があります。そのようなゾーンに属するプロセスまたはスレッドのバインド解除は失敗します。

–U

指定された pset のリスト、または引数が指定されていない場合は任意の pset にバインドされているすべての LWP のバインディングを削除します。

psrset(8) によって作成された pset のみが有効なバインド解除ターゲットです。プール pset は、有効なバインド解除ターゲットではありません。通常のプールにバインドされたプロセスをデフォルトのプールにバインドするには、poolbind(8) を使用します。

オペランド

次のオペランドがサポートされています。

pid

pid をプロセス ID で指定します。

lwpid

制御または照会する、指定のプロセスの LWPID のセット。LWP ID を選択するための構文は次のとおりです。

2,3,4-8       LWP IDs 2, 3, and 4 through 8
-4            LWPs whose IDs are 4 or below
4-            LWPs whose IDs are 4 or above
processor_id

個々のプロセッサ番号 (たとえば 3)、スペースで区切った複数のプロセッサ番号 (たとえば 1 2 3)、プロセッサ番号の範囲 (たとえば 1-4) として processor_id を指定します。また、範囲と (個々または複数の) processor_id を組み合わせることも可能です (たとえば、1‐3 5 7‐8 9)。

pset_id

pset_id をプロセッサセット ID として指定します。

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

0 以外

エラーが発生しました。

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
確実

関連項目

processor_bind(2)processor_info(2)pset_bind(2)pset_create(2)pset_info(2)sysconf(3C)libpool(3LIB)attributes(7)privileges(7)resource-management(7)、pbind(8)pooladm(8)poolbind(8)poolcfg(8)psradm(8)psrinfo(8)

診断

次の出力は、指定されたプロセスが存在しないか、終了していることを示します。


psrset: cannot query pid 31: No such process

次の出力は、ユーザーにはプロセスをバインドする権限がないことを示します。


psrset: cannot bind pid 31: Not owner

次の出力は、ユーザーにはプロセッサを割り当てる権限がないことを示します。


psrset: cannot assign processor 4: Not owner

次の出力は、指定されたプロセッサがオンラインでないか、指定されたプロセッサが存在しないことを示します。


psrset: cannot assign processor 8: Invalid argument

次の出力は、指定されたプロセスの LWP がプロセッサにバインドされており、そのプロセッサを含まない pset にはバインドできないことを示します。


psrset: cannot bind pid 67: Device busy

次の出力は、指定されたプロセッサを pset に追加できなかったことを示します。これは、そのプロセッサに LWP がバインドされている、そのプロセッサを同じ pset 内のほかのプロセッサと組み合わせることができない、または、プロセッサがその現在の pset 内で最後のプロセッサであるために発生する可能性があります。


psrset: cannot assign processor 7: Device busy

次の出力は、指定された pset が存在しないことを示します。


psrset: cannot execute in processor set 8: Invalid argument

次の出力は、システムに許容される最大数の pset がすでにアクティブになっていることを示します。


psrset: cannot create processor set: Not enough space

次の出力は、ターゲット pset がリソースプール機能によって作成されたことを示しています。


psrset: cannot assign processor 7: Operation not supported
psrset: cannot bind pid 31: Operation not supported
psrset: cannot bind pid 31: Operation not supported 
psrset: could not remove processor set 1: Operation not supported
psrset: cannot exec in processor set 1: Operation not supported
psrset: cannot remove processor 7: Operation not supported
psrset: cannot unbind pid 31: Operation not supported