A number of concepts are introduced in the Solaris Resource Manager product, and there are areas that overlap conceptually with other parts of the Solaris environment.
To simplify the discussion within this document and to avoid confusion, the following terms are defined.
For both fixed and renewable resources there may be an accrue usage attribute, which is the integral of the corresponding usage attribute over time.
An lnode is active if there are any processes attached to it or attached to any of its descendants. An lnode cannot be removed while it is active.
A user whose lnode flag.admin evalutes to set. admin users may modify lnodes within their scheduling groups. Also see group administrator.
Anyone whose role includes maintaining the system. Solaris Resource Manager provides functionality to allow administrative authority to be delegated without the need to provide superuser privileges. Also see admin user, superuser, uselimadm user, group administrator, and Delegated Administration.
The fraction of available CPU resources that would be given to a user in the long term with a given configuration of lnode tree hierarchy, shares, and active lnodes.
An lnode is defined as the ancestor of another if successive references to the sgroup attribute, starting from the first lnode, eventually reference the other. That is, the latter lnode is a descendant, or a member, of the first.
When a user logs in, the PAM module process of the user attaches to the lnode corresponding to the user's UID. Any processes which are subsequently spawned are attached to the same lnode by default. The lnode that a process is attached to determines the process's limits, CPU entitlement, and privileges.
The data fields of an lnode. Because all lnodes have the same internal structure, all users have the same set of attributes. Attributes may be system, user (only used by user-mode programs), or domain. The different types of attributes differ in the field numbers allotted to them. System attributes are those which are used directly by the kernel, such as the numeric variables to control resources such as processes, memory size, and flags that control system privileges at the kernel level. User attributes can be added at any time by the administrator, and existing user attributes can be modified at any time provided the changes do not disrupt programs that use the attribute. Domain attributes are not declared in the configuration source file, because the declaration of a domain defines them implicitly.
A hybrid between online transaction processing (OLTP) and decision support system (DSS) workloads. A batch workload can consist of many repetitive transactions to a database, with some heavy computational work for each.
A limit that is placed on system resource usage.
The process of placing a limit on system resource usage.
The system administrator who is the root user (or the superuser) of the system. The root lnode is always the top of the scheduling tree. The central administrator has overall responsibility for the administration of all users and resources, but may delegate some administrative responsibility to other ordinary users by granting them administrative privileges. Typically, the central administrator determines the allocation of resources to the groups that are children of the root lnode, and grants administrative privileges to the group headers of each of those groups, thus relieving much of the associated administrative burden.
An lnode directly beneath another lnode in the scheduling tree. One lnode is a child of another if the first lnode's sgroup attribute is set to the UID of the second lnode. Correspondingly, the latter lnode is referred to as the parent or group header of the former.
The periodic reduction of the usage of a renewable resource. For all resources except CPU usage, the decay is a fixed amount deemed to be subtracted from the usage attribute on a regular basis. For CPU usage, an exponential (multiplicative) decay is used.
An lnode's current effective share is determined by its allocated share, together with its cpu.usage attribute.
The amount of CPU time allocated to a particular user.
The array slot(s) used by attributes, specified in the configuration file.
A resource with a finite total supply.
A special type of attribute that is similar to a boolean variable, except that it may have one of four values: set, clear, group, or inherit. Flags are used within Solaris Resource Manager to control privileges.
Within Solaris Resource Manager, this term normally refers to a scheduling group. See scheduling group.
The lnode at the head of a group, referred to as a group administrator or group header lnode. A group header has administrative privilege over the members of the scheduling group that he or she heads. Status is granted by setting the flag.admin flag of a group header. Group administrators are allowed to control resource and privilege allocation within their group, and to further delegate administrative responsibility to group headers within their group. They are not considered members of the group that they head.
See group administrator.
When an lnode is made active, all of its parents up to the root lnode are also activated. As a result of this process, if one of the lnodes is seen to have a parent that has already been encountered, the kernel has discovered a group loop.
A special lnode to which unused CPU time is accrued. This may be useful for accounting purposes. The default user name is srmidle, which has a UID of 41.
One of the possible values that may be given to a flag attribute. When a flag with an immediate value of inherit is being evaluated, the same flag in the parent lnode is evaluated to determine the actual value. This process is recursive. If the flag is set to inherit on the root lnode, then the final value is determined from the default value. The result of evaluating a flag is always set or clear.
The core of the operating system; it supports system calls, file systems, and process scheduling. Solaris Resource Manager consists of two kernel modules and a number of kernel hooks, as well as user-level (non-kernel) programs and library routines.
An lnode with no children.
A hard limit will cause resource consumption or allocation attempts to fail if they would cause the usage to exceed the limit.
A soft limit typically does not directly constrain usage, but represents instead a point at which the user is informed of the usage and is encouraged to reduce it.
A limit of zero is a special case; it means that no limit applies.
The database of user information that Solaris Resource Manager uses to perform all resource control. It contains one lnode per UID, which is accessed by using the UID as a direct index into the file.
A limit node is a fixed-length structure used by Solaris Resource Manager to hold all per-user data required in addition to the data stored in the password map. It is a structure stored on disk in the limits database, and it is read and written by the kernel as required. There is at most a single lnode for each unique UID. Different accounts that have the same UID use the same lnode.
The on-disk copy of all the lnodes used by Solaris Resource Manager, indexed by UID.
A special lnode used when the setuid() system call cannot attach a process to the lnode corresponding to the target UID of the system call, usually because that lnode does not exist. The default user name is srmlost, which has a UID of 42.
Any message that is sent to the Solaris Resource Manager daemon, limdaemon. Some notification messages have special meaning to the limdaemon.
An lnode whose parent lnode does not exist. That is, the UID specified in the sgroup attribute of the lnode does not itself correspond to an lnode.
If an account exists for a user named other, and an lnode exists for that account, then that lnode will be used as the default for the parent of lnodes newly created by the superuser or uselimadm users using the limadm command. The system-assigned name srmother cannot be changed.
A portion of physical memory.
To read data from a file into memory one page at a time.
To relocate pages to an area outside of physical memory.
The group header of an lnode in the scheduling tree.
The Solaris enviroment database of user accounts maintained when the system is using a name service such as NIS or NIS+.
Another lnode within an lnode's scheduling group, excluding the parent of the group.
A resource in which more units become available over time. For example, CPU usage or connect-time.
The lnode for UID 0. This lnode is the head of the entire tree of lnodes, making all other lnodes its members.
Solaris Resource Manager allows all users to be organized into a system-wide hierarchy of scheduling groups that typically reflects the structure of the organizations using the system. The term "scheduling group" is used in preference to "group" to avoid confusion with the existing UNIX group concept, even though scheduling groups are used for much more than just scheduling. Solaris Resource Manager groups need bear no relation to the groups defined in the UNIX /etc/group file.
A scheduling group at any level in the lnode hierarchy can be treated as a single user. That is, resource limits assigned to a scheduling group apply to the net usage of all groups and users within that group.
The tree of lnodes, headed by the root lnode, with particular reference to the parent-child relationship between lnodes, the allocation of CPU shares, and the way in which the Solaris Resource Manager scheduler determines process run rates.
A way of defining the proportion of CPU entitlement that an lnode has with respect to its parent and peer lnodes. The concept of CPU shares is analogous to shares in a company; what matters is not how many you have, but how many compared with other shareholders.
The module responsible for allocating resources according to the plan laid out in the administrative profile.
Any login-like connection to the system of which Solaris Resource Manager is aware. It requires cooperation between Solaris Resource Manager and the various 'gateway' programs that are responsible for authenticating users and granting them access.
Users who have the flag.uselimadm flag set. They are assistants to root, and they can execute any limadm command as root.
A person who knows the root password. Processes have superuser privilege if they are running with an effective UID of 0.
Any group with root as its group header.
The basic quantity of a given resource. Values within Solaris Resource Manager are represented as one of three types of units: scaled, raw, or internal.
A numeric attribute which increases whenever a user consumes or is allocated some of a resource. For fixed resources, the usage is decreased whenever any of the resource is freed. For renewable resources, the usage is decreased whenever a decay is performed.
A user whose lnode has the flag uselimadm attribute set. This gives a user the same privileges (with regard to Solaris Resource Manager administration) as the superuser.
The way in which code is executed by normal programs and processes on a UNIX system. The alternative, kernel-mode, is used by system calls, device drivers, and the SYS class scheduler. Solaris Resource Manager has some components that run in user-mode and some that run in kernel-mode.