mkclass 命令
用途
创建一个“工作负载管理”类。
语法
mkclass [ -a 属性=价值 ... ] [ -c | -m | -b | -v | -C | -B | -P | -T | -V | -L | -A 关键词=价值 ] [ -d 配置目录 ] [ -S SuperClass ] 名称
描述
mkclass 命令创建 Name 参数所识别的超类或子类。 这个类不能是已经存在的。 Name 参数只能包含大小写字母、数字和下划线。 名称的格式为 supername 或 subname(带有 -S supername 标志)或 supername.subname。 supername 和 subname 参数的长度都限制在 16 个字符以内。 保留名称 Default、System 和 Shared。 它们称为预定义的类。 任何 Attribute=Value 或 KeyWord=Value 参数都将指定的属性或资源限制进行了初始化。 请参阅 属性 以获取更多信息。 要设置进程总限制(适用于类中每个进程的限制),请使用一个或多个选项-C(totalCPU)、-BtotalDiskIO)、-A(totalConnectTime)或 "-v(totalVirtualMemoryLimit),关键字值为 "hardmax。 要设置类别总限制(适用于整个类别的限制),请使用一个或多个选项 -P ( totalProcesses ), -T ( totalThreads ), -L ( totalLogins ), 或 -V ( totalVirtualMemoryLimit ) ,关键字值为 hardmax. 要重置总的限制,请使用 - 作为 Value。 进程总数限制、类总数限制或二者总数的限制可能在启动或更新 WLM 时被禁用(请参阅 wlmcntrl 命令)。
通常地,mkclass 命令在 WLM 相关的属性文件中增加类及其属性,并且只有当使用 wlmcntrl 更新 WLM 之后,这些修改才适用于内核类定义(活动类)。
如果空字符串作为带有 -d 标志的配置名称 (配置目录) 传递,那么将仅在 WLM 核心数据结构中创建该类,并且不会更新任何属性文件,从而使新类成为临时类 (如果 WLM 已停止并重新启动,或者系统已重新引导,那么更改将丢失)。
属性
可以更改以下属性:
类属性:
| 项 | 描述 |
|---|---|
| 层 | 指定 tier 值。 类的 tier 值是指该类在符合所有类的资源限制期望的层次结构中的位置。 一般更倾向于使用具有较低 tier 值的类。 tier 值的范围为 0 到 9(缺省值为 0)。 |
| 继承 (inheritance) | 如果 inheritance 属性设置为 yes,那么此类中的进程的子进程在执行 exec 时仍旧处于该类中,不管生效的自动分配规则如何都是如此。 如果 inheritance 属性设置为 no,那么分配规则将正常应用。 如果未指定,那么缺省值为 no。 |
| localshm | 表示被不同类中的进程访问的内存段对于起初将它们分配至的类是否仍在本地,或者这些内存段是否转至共享类。 您可以将值指定为 是啊 或 没有。 如果未指定,那么缺省值为 没有。 |
| 授权用户 | 指定被允许将进程指定给此类的用户的用户名。 如果没有指定该属性,那么缺省值为 root。 |
| 授权组 | 指定被允许将进程指定给此类的用户组的组名。 无缺省值。 |
| rset | 指定类中的进程可访问的资源集的名称。 缺省情况下,该类可访问系统上的所有资源。 |
| 弗门武夫 | 指定当类达到最大的 VM 限制时需要终止此类中的所有进程还是只终止违规的进程。 您可以指定 class 或 proc的值。 缺省值为 proc。 |
| delshm | 指定当最后一个引用共享段的进程因为超出了虚拟内存而结束时是否将删除这些共享段。 您可以指定 yes 或 no的值。 缺省值为 no。 |
| 管理用户 | 指定被允许管理此超类的子类的用户的用户名。 此属性仅对超类有效。 未指定属性时的缺省值为空字符串,且在此情况下,只有
root 用户才能管理子类。 注: 如果对属于正在运行的配置 (或属于正在运行的集合的配置) 的超类更改了 管理用户 或 管理组 属性,那么应该执行全局 WLM 更新,以将这些更改反映到核心内配置,在其他位置,此类用户限制为超类的更新可能由于缺少权限而失败。
|
| 管理组 | 指定被允许管理此超类的子类的用户组的组名。 此属性仅对超类有效。 未指定属性时的缺省值为空字符串,表示没有组可以管理子类。 注: 如果对属于正在运行的配置 (或属于正在运行的集合的配置) 的超类更改了 管理用户 或 管理组 属性,那么应该执行全局 WLM 更新,以将这些更改反映到核心内配置,在其他位置,此类用户限制为超类的更新可能由于缺少权限而失败。
|
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 字符组成。 |
标志
| 项 | 描述 |
|---|---|
| -硬最大值=值 | 设置类中的登录会话保持活动的最长时间。 值作为整数指定,可能追加有单位(s 代表秒,m 代表分钟,h 代表小时,d 代表天,w 代表星期,缺省值是秒)。 当一个使用者接近连接时间限制时,WML 会向会话终端发送一个警告消息。 当快要接近限制时,将会通知用户并且使会话引导符发送 SIGTERM 信号,在一个简短的宽延时间之后,会话将终止(SIGKILL)。 |
| -B hardmax=值 | 设置类中每个进程允许的磁盘输入输出总数。 值作为整数指定,可能追加有单位(KB 表示千字节,MB 表示兆字节,TB 表示太字节,PB 表示 千兆字节,EB 表示艾字节,缺省值是千字节)。 当一个进程使用达到了磁盘的输入输出总量限制时,将使进程发送信号 SIGTERM,经过一段宽延时间之后,进程会终止(SIGKILL)。 |
| -C hardmax=值 | 设置类中每个进程允许的 CPU 总数。 值作为整数指定,可能追加有单位(s 代表秒,m 代表分钟,h 代表小时,d 代表天,w 代表星期,缺省值是秒)。 当一个进程使用达到了这个时间限制时,使进程发送信号 SIGTERM,经过一段宽延时间之后,进程会终止(SIGKILL)。 |
| -d 配置目录 | 使用 /etc/wlm/Config_Dir 作为属性文件的备用目录。 当没有使用该标志时,mkclass 使用由 /etc/wlm/current 指向目录中的配置文件。 如果将空字符串作为配置名称传递,那么-d "") 仅在 WLM 核心内数据结构中创建新类,并且不修改任何配置文件。 |
| -L 硬最大值=值 | 设置在类中同时可用的登录会话的总数。 如果一个用户尝试登录到该系统,那么登录 shell 将在达到总登录限制的类中结束,登录操作将会失败。 |
| -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。 |
安全性
访问控制:只有 root 用户才能创建超类。 只有 root 用户或者用户标识或组标识与用户名或组名匹配的授权用户才可以创建此超类中的子类,用户名和组名在超类属性 adminuser 和 admingroup 中指定。
文件
| 项 | 描述 |
|---|---|
| classes | 包含类的名称和定义。 |
| 限制 | 包含强制每个类的资源限制。 |
| 共享 | 包含属于每个类的资源共享。 |