适用于 Solaris 2.6 (SPARC 平台版) 的 Solaris Resource Manager 1.0 系统管理指南

建议的分管理员 lnode 结构

分管理员可能遇到的一个问题是,他们与其组成员共享组限制。例如,如果组头目 lnode 设置有进程限制,则该限制也控制着整个组所能使用的进程的数目,其中包括组头目。除非进一步加以限制,否则调度树的任意用户只要超过其自身的进程限制,就可以阻止分管理员创建新的进程。对此加以防范的一个方法就是让组管理员为每个组成员设置单个的限制。但是,这些限制如要发生作用,就不得不是过渡限制性的。另外,强迫分管理员管理单个的限制,有悖于 Solaris Resource Manager 的分层结构资源控制的目标。解决该问题的一个替代性方法就是让管理员改变其组的lnode 的结构。他们不是将用户直接置于其自身的 lnode 的下面,而是在其自身下面创建一个"控制"lnode,作为其唯一的子 lnode,然后使用户成为该控制 lnode 的子节点。这样就促成了所显示的结构。

图形 5-1 分管理员lnode结构

Graphic

参考上图,分管理员帐户的 UID 与标记为 "实际的" 的 lnode,即树的父节点的 UID 相对应。这就是 admin 标记得到设置的 lnode。要为该"控制"lnode创建一个哑帐户。无需允许该帐户拥有登录权利。标记为 "A"、"B" 和 "C"的 lnode与分管理员控制下的用户相对应。

在这种情况下,"实际的" lnode 的进程限制可以是100,"控制"lnode 可以是90,而单个用户的限制设置为0。这样设置是为了确保,即使用户A、B 和 C 总共使用了90个进程(且全部得到允许),但分管理员仍旧可以创建10个进程。在这种情况下,用户仍旧有可能彼此阻止创建进程。对此加以防止的唯一方法是为这些用户设置单个限制。但在此例中,可以将限制设置为40,从而在防止单一的用户完全饿死其它用户的同时,仍旧留有灵活性。在此例中,请另外注意,分管理员可以为新的用户创建更多的 lnode,作为"控制"lnode 的子节点,而不必担心重新平衡的限制。