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

份额

用户的 cpu.shares 属性用于相对于用户的父节点和活动的同级用户,分配 CPU 权利。用户的 cpu.myshares 属性只在用户拥有活动的子用户时才有意义;用于相对于这些子用户,确定 CPU 权利的比例。

例如,如果用户 A 和 B 是父节点 P 的唯一的两个子用户,则A、B 和 P 每个均拥有组 P 内的一个份额(即,A 和 B 的 cpu.shares 设置为1,而 P 的 cpu.myshares设置为1),因而三方各自均拥有合组的权利合计之三分之一的 CPU 权利。

这样,某一用户的实际 CPU 权利取决于其父节点的相对权利。而后者又取决于父节点相对于父节点的同级用户以及相对于祖父节点的 cpu.myshares 的父节点的 cpu.shares 相对值,依此在调度树往上类推。

出于系统管理的原因,附加到根 lnode 的进程并不受制于份额属性。任何附加到根 lnode 的进程如果要求的话,总是被给予几乎全部的 CPU 资源。

没有将任何 CPU 密集型的进程附加到根 lnode 这一点很重要,否则其它进程的执行会收到严重影响。为了加以避免,应当注意下列事项:

并不是所有的调度树中的组头目都必须代表正在运行进程的实际用户,因而在这种情形下,就没有必要向它们分配 CPU 份额。可以通过将其 cpu.myshares 属性设置为零来指示此类 lnode。此类组头目中的 CPU 应计属性仍旧包含对其组内所有成员所征的收费。