Dynamic Resource Pool Constraints and Objectives
The libpool library defines properties that are available to the various entities that
are managed within the pools facility. Each property falls into the following categories:
- Configuration constraints
A constraint defines boundaries of a property. Typical constraints are the maximum and minimum allocations specified in the libpool configuration.
- Objective
An objective changes the resource assignments of the current configuration to generate new candidate configurations that observe the established constraints. An objective has the following categories:
- Workload dependent
A workload-dependent objective varies according to the conditions imposed by the workload. An example of the workload dependent objective is the utilization objective.
- Workload independent
A workload-independent objective does not vary according to the conditions imposed by the workload. An example of the workload independent objective is the cpu locality objective.
An objective can take an optional prefix to indicate the importance of the objective. The objective is multiplied by this prefix, which is an integer from 0 to INT64_MAX,, to determine the significance of the objective.
For usage examples, see How to Set Configuration Constraints in System Administration Guide: Solaris Containers-Resource Management and Solaris Zones and How to Define Configuration Objectives in System Administration Guide: Solaris Containers-Resource Management and Solaris Zones.
System Properties
- system.bind-default (writable boolean)
If the specified pool is not found in <filename>/etc/project</filename>, bind to pool with the pool.default property set to TRUE.
- system.comment (writable string)
User description of system. system.comment is not used by the default pools commands, except when a configuration is initiated by the poolcfg utility. In this case, the system puts an informative message in the system.comment property for that configuration.
- system.name (writable string)
User name for the configuration.
- system.version (read-only integer)
libpool version required to manipulate this configuration.
Pools Properties
All pools properties except pool.default and pool.sys_id are writable.
- pool.active (writable boolean)
If TRUE, mark this pool as active.
- pool.comment (writable string)
User description of pool.
- pool.default (read-only boolean)
If TRUE, mark this pool as the default pool. See the system.bind-default property.
- pool.importance (writable integer)
Relative importance of this pool. Used for possible resource dispute resolution.
- pool.name (writable string)
User name for pool. setproject(3PROJECT) uses pool.name as the value for the project.pool project attribute in the project(4) database.
- pool.scheduler (writable string)
Scheduler class to which consumers of this pool are bound. This property is optional and if not specified, the scheduler bindings for consumers of this pool are not affected. For more information about the characteristics of an individual scheduling class, see priocntl(1). Scheduler classes include:
RT for realtime scheduler
TS for timesharing scheduler
IA for interactive scheduler
FSS for fair share scheduler
FX for fixed priority scheduler
- pool.sys_id (read-only integer)
This is the system-assigned pool ID.
Processor Set Properties
- pset.comment (writable string)
User description of resource.
- pset.default (read-only boolean)
Identifies the default processor set.
- pset.escapable (writable boolean)
Represents whether PSET_NOESCAPE is set for this pset. See the pset_setattr(2) man page.
- pset.load (read-only unsigned integer)
The load for this processor set. The lowest value is 0. The value increases in a linear fashion with the load on the set, as measured by the number of jobs in the system run queue.
- pset.max (writable unsigned integer)
Maximum number of CPUs that are permitted in this processor set.
- pset.min (writable unsigned integer)
Minimum number of CPUs that are permitted in this processor set.
- pset.name (writable string)
User name for the resource.
- pset.size (read-only unsigned integer)
Current number of CPUs in this processor set.
- pset.sys_id (read-only integer)
System-assigned processor set ID.
- pset.type (read-only string)
Names the resource type. Value for all processor sets is pset.
- pset.units (read-only string)
Identifies the meaning of size-related properties. The value for all processor sets is population.
- cpu.comment (writable string)
User description of CPU