chclass コマンド
目的
ワークロード・マネージメント・クラスの属性およびリソースの資格を変更します。
構文
chclass -a Attribute=Value {[-a Attribute=Value ]...} [ -c | -m | -b | -v | -C | -B | -P | -T | -L | -V | -A KeyWord=Value ] [ -d Config_Dir] [ -S SuperClass] Name
説明
chclass コマンドは、Name パラメーターによって識別されるクラスの属性を変更します。
クラスは、前もって存在している必要があります。
属性を変更するには、属性名と新しい値に Attribute=Value パラメーターを付けて指定してください。制限値か Share の値を変更する場合は、
min、
softmax、
hardmax または shares にキーワード値を指定して、
cpu ではオプション -c を、
メモリーではオプション -m を、
および、ディスク入出力スループットでは -b を使用してください。
プロセス制限合計 (クラスの各プロセスに適用される制限) を設定するには、
-C (CPU 合計)、-B (ディスク入出力合計)、-A (接続時間合計)、または -v (仮想メモリー制限合計) のうち 1 つ以上のオプションをキーワード値 hardmax と共に指定します。
クラス制限合計 (クラス全体に適用される制限) を設定するには、
-P (プロセス合計)、-T (スレッド合計)、-L (ログイン合計)、または -V (仮想メモリー制限合計) のうち 1 つ以上のオプションをキーワード値 hardmax と共に指定します。
制限合計をリセットするには、Value に「-」を使用します。プロセス、
クラス、または両方の制限合計は、WLM の開始中または更新中に使用不可になります
(wlmcntrl コマンドを参照してください)。
注: スーパークラスの属性を変更できるのは、 root ユーザーだけです。 このスーパークラスのサブクラスの属性を変更できるのは、 ユーザー ID またはグループ ID が、 スーパークラスの属性 adminuser と admingroup に指定された ユーザー名またはグループ名に一致する、root または許可ユーザーだけです。
通常、chclass は、関係のある WLM 属性ファイルのクラスの属性を更新します。 また、wlmcntrl コマンドを使用して WLM が更新された場合にのみ、 変更がメモリー内のクラス定義 (アクティブ・クラス) に適用されます。
構成名 (Config_dir) として -d フラグの付いた空文字列がパス済みの場合は、 変更はメモリー内のクラス属性にのみ適用され、 属性ファイルは更新されず、変更は一時的なものになります (WLM を停止した後で再始動したり、 システムをリブートすると、変更内容は失われます)。
属性
下記の属性を変更することができます。
クラス属性:
| 項目 | 説明 |
|---|---|
| tier | tier (層) の値を指定します。 クラスの tier 値とは、全クラスに対するリソース制限の優先順位の階層における、特定のクラスの位置のことです。 tier 値の低いクラスの方がより優先されます。 tier 値の範囲は 0 から 9 まで (デフォルトは 0) です。 |
| inheritance | inheritance (継承) 属性が yes に設定されると、このクラスのプロセスの子は、 有効な自動割り当てルールに関係なく、exec 時もクラスに留まります。 inheritance 属性が no に設定されると、割り当てルールは通常どおりに適用されます。 この属性が指定されない場合、デフォルトは no です。 |
| localshm | さまざまなクラスのプロセスにアクセスされるメモリー・セグメントが、最初に割り当てられたクラスのローカル側に留まるか、 それとも Shared (共用) クラスに移行するかを示します。 Yes または No の値を指定できます。 この属性が指定されない場合、デフォルトは No です。 |
| authuser | このクラスへのプロセスの割り当てを許可されているユーザーの名前を指定します。 この属性が指定されない場合のデフォルトは root です。 |
| authgroup | このクラスへのプロセスの割り当てを許可されているユーザーのグループ名を指定します。 デフォルト値はありません。 |
| rset | クラス内のプロセスがアクセス権限を持つリソース・セットの名前を指定します。 デフォルトでは、クラスにはシステム上の全リソースへのアクセス権限があります。 |
| vmenforce | クラスが最大 VM 制限値に達したときに、クラスのすべてのプロセスを終了する必要があるのかまたは問題のプロセスのみを終了する必要があるのかを指定します。 class または proc の値を指定できます。 デフォルト値は proc です。 |
| delshm | 仮想メモリーを超えたため、共用セグメントを参照する最後のプロセスの終了時に共用セグメントを削除するかどうかを指定します。 yes または no の値を指定できます。デフォルト値は no です。 |
| adminuser | このスーパークラスのサブクラスの管理を許可されているユーザーの名前を指定します。
この属性は、スーパークラスの場合にのみ有効です。
この属性が指定されない場合、デフォルトはヌル・ストリングとなり、これは root ユーザーのみがサブクラスを
管理できることを意味します。
注: 実行中の構成 (または実行中のセット構成) に属する
スーパークラスの adminuser (管理ユーザー) 属性または admingroup (管理グループ) 属性が変更された場合は、
グローバル WLM の更新が実行されることによって、これらの変更がメモリー内の構成に反映される必要があります。
そうしないと、そのようなユーザーによってスーパークラスに制限された更新が、権限不足のために失敗するかもしれません。
|
| admingroup | このスーパークラスのサブクラスの管理を許可されているユーザーのグループ名を指定します。
この属性は、スーパークラスの場合にのみ有効です。
この属性が指定されない場合、デフォルト値はヌル・ストリングとなり、これはサブクラスを管理できるグループがないことを意味します。
注: 実行中の構成 (または実行中のセット構成) に属する
スーパークラスの adminuser (管理ユーザー) 属性または admingroup (管理グループ) 属性が変更された場合は、
グローバル WLM の更新が実行されることによって、これらの変更がメモリー内の構成に反映される必要があります。
そうしないと、そのようなユーザーによってスーパークラスに制限された更新が、権限不足のために失敗するかもしれません。
|
| iopriority | 入出力要求に割り当てられる優先順位を指定します。 入出力要求は、クラスへ分類されるスレッドによって出されます。 この優先順位は、デバイス・レベルで入出力バッファーを優先順位付けするのに使用されます。 記憶デバイスが入出力の優先順位をサポートしない場合、この優先順位は無視されます。 有効な入出力の優先順位の値は、0 から 15 までの範囲です。 |
CPU、メモリー、またはディスク入出力リソースについての、クラス制限およびクラス共用:
| 項目 | 説明 |
|---|---|
| min | システム内で使用可能な全部のリソースのパーセンテージとして示される、 使用可能になっていなければならないリソース (CPU 時間またはメモリー・ページ) の最小のパーセンテージを指定します。 可能な値の範囲は 0 から 100 まで (デフォルトは 0) です。 |
| shares | コンテンションがある場合に、使用可能にできるリソースの最大比率を指定します。 このパラメーターは、システム内で使用可能な全部のリソースに対する Share で示されます。 リソースの実際の比率は、すべてのアクティブなクラスの shares に比例して動的に計算されます。 あるクラスで実行中のプロセスがない場合は、その shares は計算から除外されます。 shares は、1 から 65535 までの範囲の任意の数です。 shares がハイフン (-) として指定されると、クラスは常にターゲット上にあると見なされ、このリソースに対するその使用率は WLM によって調整されません。 しかし最小限度と最大限度がある場合、それらは適用されます。 リソースに対して Share が指定されていない場合は、これがデフォルトです。 |
| softmax | コンテンションがある場合に、使用可能にできるリソースの最大パーセンテージを指定します。 可能な値の範囲は 1 から 100 まで (デフォルトは 100) です。 リソースにコンテンションがない場合、 クラスは指定されたリソースのソフト最大限度を超えることがあります。 |
| hardmax | コンテンションがなくても、使用可能にできるリソースの最大パーセンテージを指定します。 可能な値の範囲は 1 から 100 まで (デフォルトは 100) です。 メモリーにデフォルト値の 100 以外の値を指定すると、一部のメモリー・ページが未使用のままになる一方で、一部のクラス内プロセスが より多くのメモリーを使用するようになる可能性があります。 |
| max | コンテンションがなくても、使用可能にできるリソースの最大パーセンテージを指定します。 可能な値の範囲は 1 から 100 まで (デフォルトは 100) です。 メモリーにデフォルト値の 100 以外の値を指定すると、一部のメモリー・ページが未使用のままになる一方で、一部のクラス内プロセスが より多くのメモリーを使用するようになる可能性があります。 |
注: クラスのデフォルト値は、lsclass -D コマンドを使用して読み取ることができ、 プロパティー・ファイルの classes、shares、または limits を 手動で編集して、デフォルトのスタンザを追加することにより、変更することができます。 これらのファイルの詳細については、ファイル参照を参照してください。
クラス説明:
| 項目 | 説明 |
|---|---|
| 説明 | クラス説明のテキストは、コロン (:) とコンマ (,) 以外の、 どの ASCII 文字でも作成することができます。 |
フラグ
| 項目 | 説明 |
|---|---|
| -A hardmax=Value | クラス内のログイン・セッションが活動状態を維持できる最大時間を設定します。 値は整数で指定し、単位を追加することが可能です (秒は s、 分は m、時は h、日は d、週は w で、デフォルトは秒です)。 ユーザーがこの接続時間制限に近づくと、WLM はセッション端末装置に警告メッセージを送信します。 制限時間に達すると、ユーザーに通知され、セッション・リーダーに SIGTERM シグナルが送信されて、短い猶予期間の後、 セッションは終了します (SIGKILL)。 |
| -b KeyWord=Value | ディスク入出力スループットの制限値または Share の値を変更します。 可能な KeyWord は、 min、softmax、 hardmax、または shares です。 |
| -B hardmax= Value | クラス内のプロセスごとに、許可されるディスク入出力の合計量を設定します。 値は整数で指定し、単位を追加できます (キロバイトは KB、 メガバイトは MB、テラバイトは TB、ペタバイトは PB、エクサバイトは EB で、 デフォルトはキロバイト)。 プロセスは、この量のディスク入出力を使用した後、 SIGTERM シグナルを送信され、 猶予期間の後に終了します (SIGKILL)。 |
| -c KeyWord=Value | CPU の制限値または Share の値を変更します。 可能な KeyWord は、 min、softmax、 hardmax、または shares です。 |
| -C hardmax= Value | クラス内のプロセスごとに使用できる CPU 時間の合計量を設定します。 値は整数で指定し、単位を追加することが可能です (秒は s、 分は m、時は h、日は d、週は w で、デフォルトは秒です)。 プロセスは、この量の CPU 時間を使用した後、 SIGTERM シグナルを送信され、 猶予期間の後に終了します (SIGKILL)。 |
| -d Config_Dir | 属性ファイルの代替ディレクトリーとして、 /etc/wlm/Config_Dir ディレクトリーを使用してください。 このフラグが存在しない場合は、/etc/wlm/current が指すディレクトリー内の、現在の構成ファイルが使用されます。 構成名 (-d "") として空文字列がパス済みの場合は、 変更による影響を受けるのはメモリー内のクラス定義だけで、 構成ファイルは変更されません。 |
| -L hardmax= Value | クラス内で同時に使用可能なログイン・セッションの合計数を設定します。 ユーザーがシステムにログオンを試み、ログイン・シェルが、 ログイン制限合計に達したクラスで終了すると、ログイン操作は失敗します。 |
| -m KeyWord=Value | メモリーの制限値または Share の値を変更します。 可能な KeyWord は、 min、softmax、 hardmax、または shares です。 |
| -P hardmax= Value | クラス内で許可されるプロセスの最大数を設定します。 操作の結果、既に最大数のプロセスが存在するクラスに新規プロセスを入れることになる場合、 その操作は失敗します。 |
| -S SuperClass | サブクラスの属性を変更するときに、スーパークラスの名前を指定します。
スーパークラス Super のサブクラス Sub に適用する変更を指定するには、
以下の 2 とおりの方法があります。
|
| -T hardmax=Value | クラス内で許可されるスレッドの最大数を設定します。操作の結果、既に最大数のプロセスが存在するクラスに新規スレッドを入れることになる場合、 その操作は失敗します。スレッド制限合計は、少なくともクラスのプロセス制限合計と同じ大きさでなければなりません。クラスにスレッド制限合計があって、プロセス制限合計が指定されていない場合は、 プロセス制限合計がスレッド制限合計に等しく設定されます。 |
| -v hardmax=Value | 指定されたクラスのプロセスごとに許可される仮想メモリー制限値を指定します。プロセスごとに許可される仮想メモリーの最大量は、32 ビット・カーネルの場合は (2 の 31 乗)-1、64 ビット・カーネルの場合は (2 の 63 乗)-1 です。 |
| -V hardmax=Value | 指定されたクラスで許可される仮想メモリーを指定します。 プロセスごとに許可される仮想メモリーの最大量は、32 ビット・カーネルの場合は (2 の 31 乗)-1、64 ビット・カーネルの場合は (2 の 63 乗)-1 です。 |
セキュリティー
RBAC ユーザーと Trusted AIX® ユーザーへの注意: このコマンドは特権命令を実行できます。特権命令を実行できるのは特権ユーザーのみです。権限および特権の詳細情報については、「セキュリティー」の『特権コマンド・データベース』を参照してください。このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。
ファイル
| 項目 | 説明 |
|---|---|
| classes | クラスの名前と定義が入っています。 |
| limits | クラスに強制的に適用されるリソースの制限値が入っています。 |
| shares | 各クラスのリソースの Share 属性が入っています。 |