内核具有可被中央管理员在内核启动时设定的 Solaris Resource Manager 参数。Solaris 系统会在启动时读取 /etc/system 文件,并使用它来配置内核模块(有关详情,请参阅 system(4))。能在 SHR 模块(均为 32- 位整数)中设置并能覆盖 Solaris Resource Manager 缺省行为的参数是:
要在内核中进行高速缓存的 lnode 的数目。在 Solaris 系统上,每个内核 lnode 需要大约 3 千字节。零值(缺省值)的意思是内核将确定其值。所采用的试探方法为:
(nproc / SRMProcsPerUid ) + SRMLnodesExtra |
其中, nproc 是系统中所允许的同时进程的最大数目。最小值6覆盖这一计算。SRMMemoryMax 所指定的最大值也将覆盖这一计算。
所期待的每个用户所使用的进程的平均数目。缺省值为 4。
试探方法中所使用的一个边缘数,用于确定内存内 lnode 数组的大小。缺省值为 20。
散列表中的条目数,用于将 UID 值映射到内核中的 lnode。在 Solaris 系统上,每个条目均为 4 字节长。缺省值为零,意思是使用与 lnode 数目一样的值。
该值的倒数是一个分数,指定用于 Solaris Resource Manager lnode 和散列表两者的真实内存的最大百分比。缺省值为 20,意思是最大百分之五的真实内存将用于 Solaris Resource Manager 数据结构。
单一 lnode 的"内存超出"通知警告之间的最小间隔,以秒为单位。缺省值为 4。
例如,在 /etc/system 文件中:
set srmlim:SRMMemWarnFreq=10 |
行将确保内存针对任意单个用户的超出消息的发出频率不得超过每 10 秒钟一次。
还有某些参数不在 Solaris Resource Manager 之中,但也可影响其行为。其中包括:
这是在其中开始 init(1M) 进程的调度类的名称。在 Solaris Resource Manager 下,这应被看作是字符串 'SHR'(包括双引号字符)。缺省 Solaris 值为 'TS'。要使用 Solaris Resource Manager 进行 CPU 资源控制,则应在 /etc/system 文件中加入下列一行:
set initclass='SHR' |
用于覆盖缺省值:
这是一个要加载的调度类模块的名称,不必非要将其用作缺省的调度类。如要只是将 Solaris Resource Manager 用于非 CPU 资源控制,则 /etc/system 文件中应包含下列一行:
set extraclass='SHR' |
要启动未装载 Solaris Resource Manager 的系统,请使用名为 /etc/system.noshrload 的替代 /etc/system 文件。请参阅不带 Solaris Resource Manager 的启动 以了解有关该进程的指示。
在正常的系统启动过程中,当系统从单用户模式变为多用户模式时,则会运行一个 Solaris Resource Manager 初始化脚本(请参阅 附录 A,Solaris Resource Manager 代码示例),并设定所有的 Solaris Resource Manager 参数。有关该脚本所进行的任务的详细介绍,请参阅第 4 章,启动过程。
如果初始化脚本自身 (/etc/init.d/init.srm) 被修改,则原来的和修改的版本的一个副本应分开保存。应用 Solaris Resource Manager 更新程序,则不一定会保留当前的初始化脚本。