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)的可选参数有两个,对管理员来讲也很有用。它们是:
-v 参数。用于在标准输出上打印所有当前参数设置的一个格式化报告。如果给出了两个或者三个 -v选项,则报告会越来越冗长。不带任何变元而调用srmadm(1MSRM)等同于给出单个的 -v选项。
-d 参数。对 Solaris Resource Manager 系统结构进行初始化时使用时默认值,而不是读出当前的核心设置。默认值主要提供对调度性能的控制,被内置于srmadm(1MSRM),对定制 Solaris Resource Manager 来讲是个很好的起点。核心开始时预置了同样的值。
下面是典型 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 |