dispadmin - プロセススケジューラ管理
dispadmin -l
dispadmin -c class {-g [-r res] | -s file}
dispadmin -d [class]
dispadmin コマンドは、システムの実行中にプロセススケジューラパラメータを表示または変更します。
dispadmin は、file に指定された値が要求される範囲内であることを確認するために、限定的なチェックを行います。ただし、このチェックはシステムのパフォーマンスに対する新しい値の影響は分析しません。不適切な値はシステムパフォーマンスに悪影響を及ぼす場合があります。(Oracle Solaris 11.3 でのシステム情報、プロセス、およびパフォーマンスの管理を参照。)
サポートしているオプションは、次のとおりです。
表示または変更するパラメータのクラスを指定します。有効な class 値は、リアルタイムクラスの RT、タイムシェアリングの TS、対話型クラスの IA、フェアシェアクラスの FSS、および固定優先度クラスの FXです。タイムシェアリングクラスと対話型クラスは同じスケジューラを共有するため、一方のスケジューリングパラメータを変更すると、他方のパラメータも変更されます。
リブート時に svc:/system/scheduler:default を開始する際に使用されるデフォルトスケジューリングクラスの名前を設定または表示します。クラス名が指定されない場合、現在のデフォルトスケジューリングクラスの名前と説明が表示されます。クラス名が指定され、有効なスケジューリングクラス名の場合、dispadmin の非公開構成ファイル /etc/dispadmin.conf に保存されます。スーパーユーザーだけがデフォルトスケジューリングクラスを設定できます。
指定されたクラスのパラメータを取得し、それらを標準出力に書き込みます。リアルタイムクラスのパラメータについては、rt_dptbl(4) を参照してください。タイムシェアリングクラスと対話型クラスのパラメータについては、ts_dptbl(4) を参照してください。フェアシェアクラスのパラメータについては、FSS(7) を参照してください。固定優先度クラスのパラメータについては、fx_dptbl(4) を参照してください。
–g オプションと –s オプションは互いに排他的で、テーブルを上書きするのと同時に取得することはできません。
システム内で現在構成されているスケジューラクラスを一覧表示します。
–g オプションを使用するときに –r オプションを使用して、タイム定量値を出力するために使用する最小単位を指定することもできます。最小単位を指定しない場合、タイム定量値はミリ秒単位です。res を指定する場合は、1 から 1000000000 以内の正の整数を指定する必要があり、使用される最小単位は res の逆数 (秒単位) です。たとえば、res 値が 10 の場合、10 分の 1 秒単位で表現されたタイム定量値になり、res の値が 1000000 の場合、ミリ秒単位で表現されたタイム定量値になります。タイム定量を指定された最小単位の整数として表現できない場合、指定された最小単位の次の整数倍に丸められます。
指定されたクラスのスケジューラパラメータを、file の値を使って設定します。これらの値がメモリー内の現在の値を上書きします-それらは指定されたクラス内のプロセスのスケジューリングを制御するパラメータになります。file 内の値は、–g オプションで出力される形式である必要があります。さらに値は、上書きされるテーブルと同じサイズ (同じ数の優先度レベルを持つ) のテーブルを記述している必要があります。–s オプションを使用するには、スーパーユーザー特権が必要です。
スケジューリングクラスのタイム定量値は、一定時間単位ではなくシステムクロックティック単位で指定します。タイム定量値はカーネルの hz 変数の値に基づきます。クロック動作の最小単位を細かくするためにカーネル変数 hires_tick を 1 に設定すると、実際のタイム定量値は 10 の次数に減ります。
–g オプションと –s オプションは互いに排他的で、テーブルを上書きするのと同時に取得することはできません。
次のコマンドは、リアルタイムクラスの現在のスケジューラパラメータをカーネルメモリーから取得し、それらを標準出力に書き込みます。タイム定量値はマイクロ秒です。
dispadmin –c RT –g –r 1000000使用例 2 リアルタイムクラスの現在のスケジューラパラメータを上書きする
次のコマンドは、リアルタイムクラスの現在のスケジューラパラメータを、rt.config に指定された値で上書きします。
dispadmin –c RT –s rt.config使用例 3 タイムシェアリングクラスの現在のスケジューラパラメータを取得する
次のコマンドは、タイムシェアリングクラスの現在のスケジューラパラメータをカーネルメモリーから取得し、それらを標準出力に書き込みます。タイム定量値はナノ秒です。
dispadmin –c TS –g –r 1000000000使用例 4 タイムシェアリングクラスの現在のスケジューラパラメータを上書きする
次のコマンドは、タイムシェアリングクラスの現在のスケジューラパラメータを、ts.config に指定された値で上書きします。
dispadmin –c TS –s ts.config
–s オプションの引数に指定できる場所。
属性についての詳細は、マニュアルページの attributes(5) を参照してください。
|
priocntl(1), svcs(1), svcadm(1M), priocntl(2), fx_dptbl(4), rt_dptbl(4), ts_dptbl(4), attributes(5), smf(5), FSS(7)
Oracle Solaris 11.3 の管理の紹介Oracle Solaris 11.2 Programming Interfaces Guide
dispadmin は、必要なアクセス権の不足や指定された入力ファイルの問題が原因で現在のスケジューラパラメータの上書きに失敗すると、適切な診断メッセージを出力します。
デフォルトスケジューリングクラス設定機能は、サービス管理機構 smf(5) によって、次のサービス識別子の下で管理されます。
svc:/system/scheduler:default
有効化、無効化、または再起動要求など、このサービスに関する管理操作は、svcadm(1M) を使用して実行できます。実行中にサービスを無効にしても、何も変更されません。サービスステータスを照会するには、svcs(1) コマンドを使用します。