chclass 命令
用途
更改工作负荷管理类的属性和资源权利。
语法
chclass '-a 属性=价值 {[-a 属性=价值]...} [ -c | -m | -b | -v | -C | -B | -P | -T | -L | -V | -A 关键词=价值] [ -d 配置目录] [ -S SuperClass] 名称
描述
chclass 命令更改由 Name 参数标识的类的属性。 类必须已经存在。 要更改属性,请使用 Attribute=Value 参数指定属性名和新值。 要更改限制或共享值,请对 cpu 使用选项 -c ,对内存使用选项 -m ,对磁盘 I/O 吞吐量使用选项 -b 。 使用 min中的关键字值 softmax, hardmax 或 shares。 要设置进程总限制(适用于类中每个进程的限制),请使用一个或多个选项-C(totalCPU)、-BtotalDiskIO)、-A(totalConnectTime)或 "-v(totalVirtualMemoryLimit),关键字值为 "hardmax。 要设置类的总限制(适用于整个类的限制),请使用一个或多个选项 -P(totalProcesses)、-T(totalThreads)、 -L(totalLogins)或 "-V(totalVirtualMemoryLimit),关键字值为 "hardmax。 要重置总的限制,请使用 - 作为 Value。 进程总数限制、类总数限制或二者总数的限制可能在启动或更新 WLM 时被禁用(请参阅 wlmcntrl 命令)。
注:只有 root 用户可以更改超类的属性。 只有其用户标识或组标识与超类的 adminuser 和 admingroup 属性中指定的用户名或组名相匹配的 root 用户或已授权的用户才可以更改此超类的子类的属性。
正常情况下,chclass 在相关的 WLM 属性文件中更新类的属性,而仅在使用 wlmcntrl 命令更新了 WLM 之后,此修改才会被应用于内存索引节存储区的类定义(活动类)。
如果使用 -d 标志将空字符串作为配置名称 (Config_dir) 传递,那么更改仅应用于核心类属性,并且不会更新任何属性文件,从而使更改成为临时更改 (如果停止并重新启动 WLM 或重新引导系统,那么更改将丢失)。
属性
可以更改以下属性:
类属性:
| 项 | 描述 |
|---|---|
| 层 | 指定 tier 值。 类的 tier 值是指该类在符合所有类的资源限制期望的层次结构中的位置。 一般更倾向于使用具有较低 tier 值的类。 tier 值的范围为 0 到 9(缺省值为 0)。 |
| 继承 (inheritance) | 如果 inheritance 属性设置为 yes,那么此类中的进程的子进程在执行 exec 时仍旧处于该类中,不管生效的自动分配规则如何都是如此。 如果 inheritance 属性设置为 no,那么分配规则将正常应用。 如果未指定,那么缺省值为 no。 |
| localshm | 表示被不同类中的进程访问的内存段对于起初将它们分配至的类是否仍在本地,或者这些内存段是否转至共享类。 您可以指定值 Yes 或 No。 如果未指定,那么缺省值为 No。 |
| 授权用户 | 指定被允许将进程指定给此类的用户的用户名。 如果没有指定该属性,那么缺省值为 root。 |
| 授权组 | 指定被允许将进程指定给此类的用户组的组名。 无缺省值。 |
| rset | 指定类中的进程可访问的资源集的名称。 缺省情况下,该类可访问系统上的所有资源。 |
| vmenforce | 指定当类达到最大的 VM 限制时需要终止此类中的所有进程还是只终止违规的进程。 您可以指定 class 或 proc的值。 缺省值为 proc。 |
| delshm | 指定当最后一个引用共享段的进程因为超出了虚拟内存而结束时是否将删除这些共享段。 您可以指定 yes 或 no的值。 缺省值为 no。 |
| 管理员用户 | 指定被允许管理此超类的子类的用户的用户名。 此属性仅对超类有效。 未指定属性时的缺省值为空字符串,且在此情况下,只有
root 用户才能管理子类。 注: 如果针对属于正在运行的配置 (或正在运行的集合的配置) 的超类更改了 adminuser 或 admingroup 属性,那么应执行全局 WLM 更新以反映对核心内配置的这些更改,在其他位置, 此类用户限制为超类的更新可能由于缺少权限而失败。
|
| 管理员组 | 指定被允许管理此超类的子类的用户组的组名。 此属性仅对超类有效。 未指定属性时的缺省值为空字符串,表示没有组可以管理子类。 注: 如果针对属于正在运行的配置 (或正在运行的集合的配置) 的超类更改了 adminuser 或 admingroup 属性,那么应执行全局 WLM 更新以反映对核心内配置的这些更改,在其他位置, 此类用户限制为超类的更新可能由于缺少权限而失败。
|
| io优先级 | 指定分配给 I/O 请求的优先级。 I/O 请求由划分为该类的线程发出。 此优先级用于确定设备级别的 I/O 缓冲区的优先级。 如果存储设备不支持 I/O 优先级,那么此优先级会被忽略。 有效 I/O 优先级值的范围为 0 到 15。 |
CPU、内存或磁盘 I/O 资源的类限制和共享:
| 项 | 描述 |
|---|---|
| MIN | 指定了被请求时必须成为可用的资源的最小百分比,表示为系统中可用总资源的百分比。 可能值的范围为 0 到 100(缺省值为 0)。 |
| 共享 | 指定发生争用时,可以成为可用资源的最大比率。 该参数表示为系统中可用总资源的份额。 动态地计算资源实际比率,并与所有活动类的份额成正比。 如果类没有正在运行的进程,它的份额则排除在计算之外。 份额为 1 到 65535 中的任意数字。 如果份额被指定为连字符(-),那么总是在目标上考虑此类,并且它对于该资源的使用不是由 WLM 来调整的,而最大和最小限制(如果有)仍适用。 如果用于资源的份额未指定,这就是缺省值。 |
| 软最大值 | 指定发生争用时,可以成为可用资源的最大比率。 可能值的范围为 1 到 100(缺省值为 100)。 如果在资源上未发生争用,那么类可以超过其对于给出资源的软性最大值。 |
| 硬最大值 | 指定即使未发生争用时,可以成为可用资源的最大比率。 可能值的范围为 1 到 100(缺省值为 100)。 对内存指定缺省值 100 以外的值会使得一些内存页仍处于未使用状态,而该类中的一些进程使用更多内存页。 |
| MAX | 指定即使未发生争用时,可以成为可用资源的最大比率。 可能值的范围为 1 到 100(缺省值为 100)。 对内存指定缺省值 100 以外的值会使得一些内存页仍处于未使用状态,而该类中的一些进程使用更多内存页。 |
注:可以使用 lsclass -D 命令来读取类的缺省值,并可通过手动编辑属性文件类、共享或限制来更改该缺省值以添加缺省节。 有关这些文件的更多信息,请参阅文件参考。
类描述:
| 项 | 描述 |
|---|---|
| 描述 | 类描述文本可由除了冒号(:)和逗号(,)以外的任何 ASCII 字符组成。 |
标志
| 项 | 描述 |
|---|---|
| -A hardmax=值 | 设置类中的登录会话保持活动的最长时间。 值作为整数指定,可能追加有单位(s 代表秒,m 代表分钟,h 代表小时,d 代表天,w 代表星期,缺省值是秒)。 当一个使用者接近连接时间限制时,WML 会向会话终端发送一个警告消息。 当快要接近限制时,将会通知用户并且使会话引导符发送 SIGTERM 信号,在一个简短的宽延时间之后,会话将终止(SIGKILL)。 |
| -b 关键词=价值 | 为磁盘 I/O 吞吐量更改限制或份额值。 可能的 KeyWord 是 min、softmax、hardmax 或 shares。 |
| -B hardmax=值 | 设置类中每个进程允许的磁盘输入输出总数。 值作为整数指定,可能追加有单位(KB 表示千字节,MB 表示兆字节,TB 表示太字节,PB 表示 千兆字节,EB 表示艾字节,缺省值是千字节)。 当一个进程使用达到了磁盘的输入输出总量限制时,将使进程发送信号 SIGTERM,经过一段宽延时间之后,进程会终止(SIGKILL)。 |
| -c 关键词=价值 | 为 CPU 更改限制或份额值。 可能的 KeyWord 是 min、softmax、hardmax 或 shares。 |
| -C hardmax=值 | 设置类中每个进程允许的 CPU 总数。 值作为整数指定,可能追加有单位(s 代表秒,m 代表分钟,h 代表小时,d 代表天,w 代表星期,缺省值是秒)。 当一个进程使用达到了这个时间限制时,使进程发送信号 SIGTERM,经过一段宽延时间之后,进程会终止(SIGKILL)。 |
| -d 配置目录 | 把 /etc/wlm/Config_Dir 目录用作属性文件的备用目录。 如果没有该标志,就会使用 /etc/wlm/current 所指向目录中的当前配置文件。 如果传递空字符串作为配置名称 (-d "") 修改仅影响核心内类定义,并且不会修改配置文件。 |
| -L hardmax=值 | 设置在类中同时可用的登录会话的总数。 如果一个用户尝试登录到该系统,那么登录 shell 将在达到总登录限制的类中结束,登录操作将会失败。 |
| -m 关键词=价值 | 为内存更改限制或份额值。 可能的 KeyWord 是 min、softmax、hardmax 或 shares。 |
| -P hardmax=值 | 设置类中允许的最大进程数。 如果一个操作导致一个新的进程进入类,当类中已包含太多进程时,该操作将会失败。 |
| -S SuperClass | 指定在更改子类属性时,超类的名称。 有两种方法可指定更改应用于超类 Super 的子类 Sub:
|
| -T hardmax=值 | 设置类中允许的最大线程数。 如果一个操作导致了一个新的线程进入类,当类中已包含太多进程时,该操作将会失败。 类中允许的总的线程数至少要和类中总的进程数一样。 如果一个类有总线程数的限制,而没有总进程数的限制,那么总进程数的限制值将会设置为总线程数限制。 |
| -v hardmax=值 | 指定在指定类中每个进程允许的虚拟内存限制。 对于 32 位内核,每个进程允许的最大虚拟内存是 (2^31)-1;对于 64 位内核,每个进程允许的最大虚拟内存是 (2^63)-1。 |
| -V hardmax=值 | 指定对于指定的类允许的虚拟内存。 对于 32 位内核,每个进程允许的最大虚拟内存是 (2^31)-1;对于 64 位内核,每个进程允许的最大虚拟内存是 (2^63)-1。 |
安全性
RBAC 用户和可信 AIX® 用户注意: 此命令可以执行特权操作。 只有特权用户才能执行特权限定的操作。 有关权限与特权的更多信息,请参阅安全性中的“特权限定的命令数据库”。 有关与该命令相关联的特权和权限的列表,请参阅 lssecattr 命令或 getcmdattr 子命令。
文件
| 项 | 描述 |
|---|---|
| classes | 包含类的名称和定义。 |
| 限制 | 包含强加于类的资源限制。 |
| 共享 | 包含每个类的资源共享属性。 |