The kernel has certain Solaris Resource Manager parameters that can be set by the central administrator when the kernel is booted. The Solaris system reads the /etc/system file at boot time and uses it to configure kernel modules (see system(4) for details). The parameters that can be set in the SHR module (all are 32-bit integers) to override the Solaris Resource Manager default behavior are:
The number of lnodes to cache in the kernel. On Solaris systems, each kernel lnode requires about 3 Kb. A value of zero (the default) means that the kernel will determine the value. The heuristic then used is:
(nproc / SRMProcsPerUid ) + SRMLnodesExtra
where nproc is the maximum number of simultaneous processes allowed in the system. A minimum value of 6 overrides this calculation. The maximum specified by SRMMemoryMax will also override this calculation.
The anticipated average number of processes used by each user. The default is 4.
A bias used in the heuristic to determine the size of the in-memory lnode array. The default is 20.
The number of entries in the hash table that is used to map UID values to lnodes in the kernel. On Solaris systems, each entry is 4 bytes long. The default is zero, which means to use the same value as for the number of lnodes.
The reciprocal of this value is a fraction that specifies the maximum percentage of real memory to use for the Solaris Resource Manager lnode and hash tables combined. The default is 20, which means that a maximum of 5 percent of real memory will be used for Solaris Resource Manager data structures.
The minimum interval, in seconds, between "memory exceeded" notification warnings for a single lnode. The default value is 4.
For example, in the /etc/system file the line:
will ensure that memory exceeded messages are not sent more frequently than once every 10 seconds for any single user.
There are also some parameters not in Solaris Resource Manager that affect its behavior. These include:
This is the name of the scheduling class in which the init(1M) process is started. Under Solaris Resource Manager this should be given as the string "SHR" (including the double-quote characters). The default Solaris value is "TS". To use Solaris Resource Manager for CPU resource control, the following line should be included in the /etc/system file:
to override the default.
This is a name of a scheduling class module to load, without necessarily using it as the default scheduling class. To use Solaris Resource Manager with only non-CPU resource control, the following line should be included in the /etc/system file:
To boot a system that does not have Solaris Resource Manager loaded, an alternate /etc/system file named /etc/system.noshrload is used. See Booting Without Solaris Resource Manager for instructions on this process.
During a normal system boot, when the system changes from single-user to multi-user mode, a Solaris Resource Manager initialization script (see Appendix A, Solaris Resource Manager Code Examples) is run to set various Solaris Resource Manager parameters. Details of what this script does are given in Chapter 4, Boot Procedure.
If the initialization script itself (/etc/init.d/init.srm) is modified, copies of both the original and modified versions should be kept separately. Applying Solaris Resource Manager updates will not necessarily preserve existing initialization scripts.