Overview of Resource Pools
Resource pools provide a framework for managing processor sets and thread scheduling classes.
Resource pools are used for partitioning machine resources. Resource pools enable you to
separate workloads so that workload consumption of certain resources does not overlap. The
resource reservation helps to achieve predictable performance on systems with mixed workloads.
For an overview of resource pools and example commands for administering resource pools,
see Chapter 12, Resource Pools (Overview), in System Administration Guide: Solaris Containers-Resource Management and Solaris Zones and Chapter 13, Creating and Administering Resource Pools (Tasks), in System Administration Guide: Solaris Containers-Resource Management and Solaris Zones.
A processor set groups the CPUs on a system into a bounded
entity, on which a process or processes can run exclusively. Processes cannot extend beyond
the processor set, nor can other processes extend into the processor set. A
processor set enables tasks of similar characteristics to be grouped together and a
hard upper boundary for CPU use to be set.
The resource pool framework allows the definition of a soft processor set with
a maximum and minimum CPU count requirement. Additionally, the framework provides a hard-defined
scheduling class for that processor set.
A zone can be bound to a resource pool through the pool
property of the zone configuration. The zone is bound to the specified pool
upon creation of the zone. The pool configuration can be changed only from
the global zone. Zones cannot span multiple pools. All processes in a zone
run in the same pool. However, multiple zones can bind to the same
resource pool.
A resource pool defines:
Processor set groups
Scheduling class
Scheduling Class
Scheduling classes provide different CPU access characteristics to threads that are based on
algorithmic logic. The scheduling classes include:
Realtime scheduling class
Interactive scheduling class
Fixed priority scheduling class
Timesharing scheduling class
Fair share scheduling class
For an overview of fair share scheduler and example commands for administering the
fair share scheduler, see Chapter 8, Fair Share Scheduler (Overview), in System Administration Guide: Solaris Containers-Resource Management and Solaris Zones and Chapter 9, Administering the Fair Share Scheduler (Tasks), in System Administration Guide: Solaris Containers-Resource Management and Solaris Zones.
Do not mix scheduling classes in a set of CPUs. If scheduling
classes are mixed in a CPU set, system performance might become erratic and
unpredictable. Use processor sets to segregate applications by their characteristics. Assign scheduling classes under
which the application best performs. For more information about the characteristics of an
individual scheduling class, see priocntl(1).
For an overview of resource pools and a discussion of when to
use pools, see Chapter 6, Resource Pools.