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

印刷ビューの終了

更新: 2014 年 7 月
 
 

psrset(1M)

名前

psrset - プロセッサセットの作成と管理

形式

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

説明

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

プールが有効になっている場合、このコマンドを使用してプロセッサ配置を変更することはできません。リソースプール機能を使用してプロセッサセットの構成を変更するには、pooladm(1M) および poolcfg(1M) を使用します。

オプション

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

–a

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

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

–b

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

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

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

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

–c

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

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

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

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


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

指定されたプロセッサセットを削除し、割り当てられているすべてのプロセッサおよびプロセスを解放します。

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

–e

指定されたプロセッサセットでコマンドを (場合によっては引数付きで) 実行します。

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

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

–f

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

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

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

–F

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

–i

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

–n

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

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

–p

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

–q

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

–Q

指定された一連のプロセッサセットにバインドされている LWP、またはプロセッサセットバインドを持つすべての LWP を表示します。

–r

一連のプロセッサをその現在のプロセッサセットから削除します。削除されたプロセッサは、プロセッサの汎用プールに戻ります。

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

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

–u

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

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

–U

指定された一連のプロセッサセットまたは引数が指定されていない場合は任意のプロセッサセットにバインドされている、すべての LWP のバインドを削除します。

オペランド

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

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)。

processor_set_id

processor_set_id をプロセッサセット ID で指定します。

終了ステータス

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

0

正常終了。

0 以外

エラーが発生した。

属性

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

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

関連項目

pbind(1M), pooladm(1M), poolcfg(1M), psradm(1M), psrinfo(1M), processor_bind(2), processor_info(2), pset_bind(2), pset_create(2), pset_info(2), sysconf(3C), libpool(3LIB), attributes(5), privileges(5)

診断

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


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 がプロセッサにバインドされており、そのプロセッサを含まないプロセッサセットにはバインドできないことを示します。


psrset: cannot bind pid 67: Device busy

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


psrset: cannot assign processor 7: Device busy

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


psrset: cannot execute in processor set 8: Invalid argument

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


psrset: cannot create processor set: Not enough space

次の出力は、プール機能がアクティブになっていることを示します。


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 create processor set: 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