工作负载管理器规则文件

用途

为给定的工作负载管理器 (WLM) 配置的超类或子类定义自动类分配规则。

描述

/etc/wlm/Config/rules 文件描述 WLM 配置 Config的超类的分配规则。 如果此配置的超类 Super 定义了子类,那么子类的分配规则在文件 /etc/wlm/Config/Super/rules中定义。

超类和子类的分配规则的格式是相同的。

规则 文件是一个标准的文本文件。 每一行都表示指定类的分配规则。 对于同一个类,可以同时存在几个分配规则。 每个规则都列出一个类的名称以及一个进程的某些属性的值列表; 这些值用作分类条件。 规则的各个字段之间用空格分隔。 对于您未定义的属性,请使用连字符 (-) 表示这些属性。
注: 对于每个超类的缺省超类和缺省子类,都存在隐式规则。 这些规则会捕获与 规则 文件中明确声明的任何规则都不匹配的所有进程。 它们适用于 WLM 配置,而不考虑它们是否明确声明。

分配规则

分配规则由下面描述的字段组成。 出现时,以下字段 必须 按如下所示的顺序显示。 顺序很重要,因为值会提供给字符串中由其位置标识的字段。 只有前三个字段 (保留用户) 是必需的。 如果其余字段的值为连字符,那么可以省略这些字段。

例如,任务分配规则

class1 - user1
与以下内容相同:
class1 - user1 - - - -
规则
class - - group1 - 32bit+fixed
是等同于以下规则的有效规则:
class - - group1 - 32bit+fixed -
但在规则的情况下class1 - group1,group1解释为用户名,因为它在字符串中的位置。
描述
CLASS 包含在 文件中定义的类的名称,该类对应于 规则 文件 (超类或子类) 的级别。 类名只能包含大写和小写字母,数字以及下划线,并且长度限制为 16 个字符。

对于系统定义的类 "Unclassified" , "Unmanaged" 和 "Shared" ,不能指定任何分配规则。

保留的 必须将此字段设置为连字符 (-)
用户 包含连字符或有效用户名列表 (如 /etc/passwd 文件中所定义)。 该列表由一个或多个名称组成,并以逗号 (,) 分隔。 要从类中排除用户,请在该用户的名称前放置感叹号 (!)。 使用完整的 Korn shell 程序模式匹配语法来指定通配符模式以匹配一组用户名。
包含连字符或有效组名列表 (如 /etc/group 文件中所定义)。 该列表由一个或多个名称组成,并以逗号分隔。 要从类中排除某个组,请在该组的名称前放置一个感叹号。 使用完整的 Korn shell 程序模式匹配语法来指定通配符模式以匹配一组组名。
应用程序 包含一个连字符或应用程序路径名的列表。 这是由要包含在类中的进程所执行的文件的路径名。 该值可以是完整路径名,也可以是与一组路径名匹配的通配符模式。 该列表由一个或多个路径名组成,并以逗号分隔。 要从类中排除某个应用程序,请在该应用程序的名称前放置感叹号。
TYPE 包含此进程的连字符或属性列表。 以下是可能的值:
32bit
指示该进程是 32 位
64bit
指示此进程为 64 位
plock
指示该进程已调用 普洛克 子例程来锁定内存
固定
指示进程是固定优先级 (SCHED_FIFO 或 SCHED_RR)

类型 字段的值可以是以上一个或多个值的组合列表 (以逗号分隔)。 在组合中,每个项都必须以加号 (+) 分隔。 例如,该值fixed,64bit+plock指示任何固定优先级进程 (无论是 32 位还是 64 位) 都匹配。 此外,调用 普洛克 子例程的 64 位进程匹配。 但是值fixed+64bit+plock指示不同的规则条件: 仅 64 位进程,固定进程以及调用 普洛克 子例程的进程与条件匹配。

32bit 值和 64bit 值互相排除。

标记 (tag) 可以包含连字符或应用程序标记的列表。 列表由一个或多个应用程序标记值组成(用逗号分隔)。

对进程进行分类时, WLM 会尝试将进程属性 (用户应用程序类型标签) 的值与 规则 文件中提供的值相匹配。 为了匹配值, WLM 使用以下条件:

  • 如果规则中的值是连字符,那么相应进程属性的任何值都是匹配项。
  • 如果流程属性 (除 类型 属性之外) 的值出现在规则中相应字段中指定的值列表中,并且前面没有惊叹号,那么它是指定属性的匹配项。
  • 如果流程 type 属性 (32bit/64bitplockfixed) 的值与规则中 type 字段的列表中提供的所有值 (以 + 符号分隔) 匹配,那么它们与流程类型匹配。
  • 如果流程属性的所有值都与规则的相应字段中的值匹配,那么将在规则的 字段中指定的类中对流程进行分类。
  • WLM 按规则在 规则 文件中出现的顺序扫描规则,并对 检测到匹配项的第一个规则中指定的类中的进程进行分类。 因此,规则在文件中的顺序是非常重要的。

在对进程进行分类时, WLM 首先扫描 规则 文件以查找当前配置的超类,从而确定将进程分配给哪个超类。 然后, WLM 将扫描此超类的 规则 文件以确定它将进程分配给哪个子类。

如果线程具有应用程序标记,那么也可以将这些线程分配给类。 将使用与流程相同的规则来分配这些值。 但是,不具有应用程序标记的线程将保持分配给它们的进程类。

分组

作为 AIX® 操作系统的一项改进,您现在可以在 规则 文件中使用属性值分组。 属性分组可用作超类或子类的 规则 文件中的选择标准的元素。 有关更多信息,语法和示例,请参阅 分组 文件。

安全性

包含超类的分配规则的文件必须具有仅 root 用户的写许可权。 包含超类的子类的分配规则的文件必须具有对超类的 adminuser 和 admingroup 的写许可权。 如果超类不存在任何 adminuser ,那么该文件应该由 root 用户拥有。 如果超类不存在任何 admingroup ,那么超类的 规则 文件应该由系统组拥有,并且对组没有写许可权。

示例

  1. 以下是以下示例:/etc/wlm/Config/rules文件:
    * This file contains the rules used by WLM to
    * assign a process to a superclass
    *
    * class resvd user  group   application     type  tag
    db1      -      -     -    /usr/bin/oracle*  -    _DB1
    db2      -      -     -    /usr/bin/oracle*  -    _DB2
    devlt    -      -    dev        -            -     -
    
    
    VPs      -   bob,ted   -        -            -     -
    acctg    -      -    acct*      -            -     -
    System   -    root     -        -            -     -
    Default  -      -      -        -            -     -
  2. 以下是超类的 规则 文件的示例:devlt/etc/wlm/Config/devlt/目录:
    * This file contains the rules used by WLM to
    * assign a process to a subclass of the 
    * superclass devlt
    *
    * class resvd  user    group   application         type         tag
    hackers   -  jim,liz     -         -                -            -
    hogs      -     -        -         -             64bit+plock     -
    editors   -   !sue       -     /bin/vi,/bin/emacs   -            -
    build     -     -        -     /bin/make,/bin/cc    -            -
    Default   -     -        -         -                -            -
注: 星号 (*) 是注释字符。

文件

描述
规则 定义 WLM 配置中超类或子类的类分配规则