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

Recent Changes