Go to main content

man pages section 8: System Administration Commands

Exit Print View

Updated: Wednesday, July 27, 2022



poold - automated resource pools partitioning daemon


poold [-l level]


poold provides automated resource partitioning for the resource pools facility. poold can be enabled or disabled by using the Solaris Service Management Facility, smf(7).

The dynamic resource pools service's fault management resource identifier (FMRI) is:


poold's configuration details are held in a libpool(3LIB) configuration and you can access all customizable behavior from this configuration.

poold periodically examines the load on the system and decides whether intervention is required to maintain optimal system performance with respect to cpu consumption. poold also responds to externally initiated (with respect to poold) changes of either resource pools configuration or objectives.

poold moves CPUs between psets which have properties pset.min != pset.max, as such psets are configured to have a variable number of CPUs. poold allocates CPUs to psets based on the "pool.importance", the "pset.poold.objectives", and the "system.poold.objectives" properties described in the libpool(3LIB) manpage.

If poold is not enabled, then CPUs are only moved between psets when the running pool configuration changes, such as when:

  • A new pool configuration is applied through pooladm(8).

  • A pset is created or destroyed through psrset(8).

  • An Oracle Solaris zone with the dedicated cpu resource is booted or halted.

During such events, psets with pset.min != pset.max may gain or lose CPUs, even when poold is not enabled.

If intervention is required, poold attempts to reallocate the available CPUs to ensure that performance objectives are satisfied. If it is not possible for poold to meet performance objectives with the available CPUs, then a message is written to the log. poold allocates scarce CPUs according to the objectives configured by the administrator. The system administrator must determine which pools are most deserving of scarce resource and indicate this through the importance of pools and objectives.


The following options are supported:

–l level

Specify the verbosity level for logging information.

Specify level as ALERT, CRIT, ERR, WARNING, NOTICE, INFO, and DEBUG. If level is not supplied, then the default logging level is INFO.


A condition that should be corrected immediately, such as a corrupted system database.


Critical conditions, such as hard device errors.




Warning messages.


Conditions that are not error conditions, but that may require special handling.


Informational messages.


Messages that contain information normally of use only when debugging a program.

When invoked manually, with the –l option, all log output is directed to standard error.


Example 1 Modifying the Default Logging Level

The following command modifies the default logging level to ERR:

# /usr/lib/pool/poold -l ERR
Example 2 Enabling Dynamic Resource Pools

The following command enables dynamic resource pools:

# /usr/sbin/svcadm enable svc:/system/pools/dynamic


See attributes(7) for descriptions of the following attributes:

Interface Stability
See below.

The invocation is Committed. The output is Uncommitted.

See Also

libpool(3LIB), pool_set_status(3POOL), attributes(7), smf(7), pooladm(8), poolbind(8), poolcfg(8), poolstat(8), svcadm(8)