在上面一节示例的结尾处用 liminfo 得出的 db1 列表会显示本输出。键入:
# liminfo db1 |
输出:
本节的其余部分描述图 9-7 中所产生的 liminfo 输出。请参考 liminfo(1SRM) 和 srm(5SRM) 以了解更多有关下面所描述的字段的信息。
来自 liminfo 命令的输出的前两行涉及 lnode UID 及其在 lnode 树中的位置等方面:
来自于与所附加的 lnode 的 UID 相对应的口令映射的登录名称和初始 GID。每个 lnode 均与一个系统 UID 相关联。强烈建议为每个 lnode 创建一个系统帐户。在本实例中,一个占位 UID, db1 被用于数据库 1。
注意,Solaris Resource Manager 下的缺省 PAM 配置为登录时没有 lnode 的任何用户创建一个 lnode。按缺省值,由超级用户或者由某个设置了 uselimadm 标志的用户创建的 lnodes,在创建时以 lnode srmother 作为其父节点,如不存在,就将 root lnode 作为父节点。可以借助用于更改 lnode 属性的一般命令, limadm,对 lnode 的父节点进行更改。
附加到当前进程的 lnode 的 UID。通常与进程(已登录用户)的真实的 UID 相同,但在某些情况下(后面有描述),可能有所不同。
附加到当前进程的 lnode 的 GID。
当前进程的真实和有效 UID 和 GID。这与标准系统 id(1M) 命令所提供的信息相同。这不是严格与 Solaris Resource Manager 有关,而只是为了方便才加以显示的。如果 liminfo 是在显示有关某个用户的信息,而不是缺省的信息(即,是用登录名称或者 UID 作为变量提供的),则不显示这些字段。
lnode 树分层结构中父 lnode 的名称和 UID。如果是 root lnode,则为空。许多 Solaris Resource Manager 特性取决于某一 lnode 在树分层结构中所处的位置,因而这有助于用户跟踪连续的父 lnode,一直回到树的根。
在空白行之后,liminfo 的下面三行显示与 CPU 调度有关的字段。
这是分配给该用户的 CPU 权利份额的数目。这只能与有相同父节点的其它用户以及与该父节点本身的 Myshares 的值直接比较。管理员通常可以将某一具体调度组中的所有用户的份额设置为同一值(给予这些用户平等的权利)。该值通常为大于 1 的某个数,从而留有余地,使管理员可以在适当的时候减少某些用户的份额。
只有该用户有正在活动(即,附加有进程)的子 lnode 时才使用该值(即,如果其它 lnode 拥有该用户的 sgroup 值)。如果情况确实是这样,则该值给出的是附加到该 lnode 的相关的 CPU 值的份额,可以与附加到其子 lnode 的 CPU 值的份额进行对比。
计算得出的当前用户有权使用的系统 CPU 资源的百分比。随着其他用户登录和注销(或者 lnode 变为活动或者不活动),该值也将发生变化,原因在于计算只会将活动的用户计算在内。该计算并不包含当前用户的最近利用率。
这是该用户的有效份额(即,只要该用户要求且其他用户也在要求得到各自的份额,该用户就可以在短期内得到的系统 CPU 资源的实际百分比)。可以将此看作当前 Solaris Resource Manager 愿意分配给该 lnode 的 CPU 资源。该值会随着时间的推移,用户使用(或者不使用)CPU 资源,而发生变化。活动但空闲(即,所附加的进程休眠),因而利用率较低的 lnode 将拥有一个高效的份额值。相应地,对于所附加的进程正在积极使用 CPU 的用户来讲,其有效份额十分小。
用于确定调度优先权的累计系统资源利用率。其典型情况是指示最近的 CPU 利用率,但有可能还将其他参数考虑在内。可以借助 srmadm 命令查看参数混成情况。该值的每一增量随着时间的推移而发生指数衰变,从而最终 Solaris Resource Manager 将资源利用率“忘记”。用半衰期表示该衰变的速率则非常容易,可以借助 srmadm 命令进行查看。
这与 cpu.usage 是同一资源累计衡量尺度,但是它从不衰变。Solaris Resource Manager 不直接采用它,但是它可被用于计费管理。不像利用率,这一值代表应组内和当前所有 lnodes 的计利用率的总和。
在第二个空白行之后,liminfo 的下面四行所显示的是与虚拟内存和终端利用率有关的四个字段:
这是所有附加到该 lnode 的进程的综合内存利用率。
如果所显示的是两个值,中间用斜杠 (/) 符号隔开,则该 lnode 是一个组长。而第一个值是整个调度组的利用率,而第二个值只是当前用户的利用率。
附加到该 lnode 及其成员(如果确实有的话)的所有进程所允许有的最大内存利用率。即,组内所有进程以及附加到该组的所有进程的内存利用率总计不得超过该值。注意,在这个实例中,零 (0) 值指示没有限制。
每一进程内存限制是附加到该 lnode 及其成员的任意单个进程所允许有的最大内存利用率。
memory.accrue 值是以字节-秒为单位进行测量的,指示的是一段时间以来所使用的内存资源总和。
当前对组的连接时间进行收费的秒数。
组所使用的连接时间的秒数。
所允许的 terminal.usage 属性的最大值。如果为零,则无限制,除非受到继承的限制。
在第三个空白行之后,liminfo 显示输出的下面两行显示的是与用户和进程有关的字段:
这是附加到 lnode 的进程的数目。注意,这是进程,而不是某一进程内部的计数线程。
如果所显示的是两个值,中间用斜杠 (/) 符号隔开,则该 lnode 是一个组长。而第一个值是整个调度组的利用率,而第二个值只是当前用户的利用率。
允许附加到此 lnode 节点及其成员的最大进程数量。
该用户的同时 Solaris Resource Manager 登录会话期间的当前数目。当某个用户借助标准系统登录机制中的任意一个进行登录时(其中包括 login(1),rlogin(1)-;等等,基本上任何使用 PAM 来进行鉴别并创建一个 utmp(4) 条目的机制),该计数器增加。当会话期间结束是则该计数器减少。
如果某个用户的 flag.onelogin 标志值为设置,则只允许该用户拥有一个 Solaris Resource Manager 登录会话期间。
在第四空白行之后,liminfo 的下面四行显示下列各字段:
该字段显示的是 lnode 最后活动的时间。通常是用户最后注销的时间。
该用户的主目录(出于方便,所显示的是来自口令映射的项目,而不是来自 Solaris Resource Manager 的项目)。
db1 (finger) 信息,通常是用户的名称(出于方便,所显示的是来自口令映射的项目,而不是来自 Solaris Resource Manager 的项目)。
用户的初始登录 shell(出于方便,所显示的是来自口令映射的项目,而不是来自 Solaris Resource Manager 的项目)。
在第五空白行之后,liminfo 的最后一行显示下面这个字段:
这里显示的是值为设置的标志或者 lnode 中的组。所显示的每个标志都跟有后缀字符,指示设置标志的值和方式(例如,是明确来自本 lnode(+),还是继承 (^) 得来的)。