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

借助 Srmadm 设置全局 Solaris Resource Manager 参数

srmadm(1MSRM)命令允许管理设置、修改或者显示全局 Solaris Resource Manager 参数。如要了解所有参数的完整细节,请参考手册页。

srmadm(1MSRM)命令用于设置各种参数,可以调用任意次数。不必将其全部包含在单一的调用上。这也意味着 srmadm(1MSRM)可以用来随时对一个正在运行的 Solaris Resource Manager 系统的操作参数进行更改,但需要注意一些事项。

对管理员来讲尤其重要的是 srmadm(1MSRM)选项,用来启用或者禁用 Solaris Resource Manager 的主要特性。其中有:

fileopen[={y|n}]

默认的数据库为 /var/srm/srmDB,可以用-f选项对其进行覆盖。注意,在操作中间关闭 Solaris Resource Manager 数据库文件应当视作一项紧急行动。这有多个不良后果:所有的进程将继续在替代根 lnode 上运行,从而获得比平常更多的特权;CPU 调度器遭到禁用; Solaris Resource Manager 限制强制执行终止。如果被启用, Solaris Resource Manager当前就没有打开任何的限制数据库,其高速缓存只包含所有进程所附加的替代根 lnode。

share[={y|n}]

如果被启用,就使用 Solaris Resource Manager CPU 调度器,且根据 Solaris Resource Manager 的动态使用和衰变算法进行 CPU 调度。除非 fileopen(文件打开)模式被启用,否则无法设置该模式。如果被禁用,就冻结 Solaris Resource Manager CPU 调度器的利用率算法,且进程被调度为"不分先后",拥有固定平等优先权。

limits[={y|n}]

如果被启用, Solaris Resource Manager 就强制执行虚拟内存和进程限制。除非 fileopen(文件打开)模式被启用,否则无法设置该模式。如果被禁用, Solaris Resource Manager 将使利用率属性保持为最新,但不强制执行限制。

adjgroups[={y|n}]

如果被启用,就使用 Solaris Resource Manager CPU 调度器的全局组有效份额调整。建议在大多数情形下使用启用状态。在每次运行的间隔,所有限制条目的正常化使用得到重新计算。如果 adjgroups 调度模式被启用,则对正常化使用进行如下的附加处理。调度器在调度树上进行逾越,将每个组最近所收到的有效份额与其权利进行比较。所收到的比其组权利少的组受到特别对待,将在下一个运行间隔收到较多的有效份额。这就确保组尽可能地收到其应得的 CPU 服务,而不论其成员有何操作。

limshare[={y|n}]

如果被启用, Solaris Resource Manager CPU 调度器就应用其特权高限特性,对所有用户的有效份额加以限制,以防止使用极端低下的用户短暂地获得 CPU 的百分之100。建议使用启用状态。

某个用户的 CPU 服务的比率,大体与该用户的利用率成反比。如果用户处于活动状态已有较长一段时间,则其利用率衰变到接近零。当这样的一个用户登录(或者无论如何 lnode 成为活动)时,则在下次运行间隔期间,该用户的进程可以拥有极高的优先权,乃至垄断 CPU。

启用 limshare 调度标志,会促使调度器对某一 lnode 在下个运行间隔之前对要收到的有效份额进行估算。如果结果超过某一因素所赋予用户的权利(参阅 maxushare),则对用户的正常化使用进行调整,以避免超过。

用于 srmadm(1MSRM)的可选参数有两个,对管理员来讲也很有用。它们是:

下面是典型 srmadm(1MSRM)命令的示例。

如要开启 Solaris Resource Manager ,启用 CPU 调度器和资源限制:

# srmadm set -f /var/srm/srmDB fileopen=y:share=y:limits=y 

如要将 CPU 利用率衰变速率设置为5分钟的半衰期:

# srmadm set usagedecay=300s 

如要显示当前的标志设置和收费:

% srmadm 

如要显示所有的默认设置:

% srmadm show -dv