Solaris Resource Manager
Solaris Resource Manager allows you to control the amount of system resources a user will ues. It is based around the concept of lnodes. Resources are allocated to lnodes and users associated with the lnodes. In that way, the resources a user can be controlled.
There's three default lnodes:
srmidle - kernel idling lnode srmlost - lost lnode (required for functionality) srmother - the default lnode assigned to users not specifically associated with another lnode
This is better explained by considering the following example.
An Example Simple SRM Setup
1. useradd -u 500 -g other -s /bin/false -c "SRM User" srmVP - to create a user entry for the lnode to be associated with 2. limadm set cpu.shares=200 srmother - give other users 20% of the CPU resources 3. limadm set cpu.shares=800 srmVP - give SrmVP lnode 80% of the CPU resources 4. limadm set sgroup=0 srmVP - make srmVP a child of root 5. limadm set sgroup=srmVP user1 - make user1 a child of srmVP 6. su - oracle -c "srmuser srmVP /u01/app/oracle/product/9.2.0/bin/srvctl start database -d DB0" - start oracle instance DB0 associated to srmVP lnode (instead of srmother). This means that this oracle instance can use up to 80% of the CPU resources.
Some useful SRM commands
- /usr/srm/unsupport/limid -p pid - displays the lnode the process is attached to
- /usr/srm/unsupport/schedtree - shows the SRM tree
- ps -cafe - processes under SRM control will have a class od SHR
- liminfo -v srmVP - show SRM stats for user SsrmVP