Go to main content

man pages section 8: System Administration Commands

Exit Print View

Updated: Wednesday, July 27, 2022



pooladm - apply and un-apply a pool configuration


/usr/sbin/pooladm [-n] [-s] [-c] [filename]
/usr/sbin/pooladm [-x | -d | -e]


The pooladm command reads the specified filename and attempts to create the pools and psets specified within it. It also updates the properties of all pools objects (system, pools, psets, and CPUs) to match those specified in the file.

The default pool configuration file is /etc/pooladm.conf. It is used if no filename is specified.

Any pools, psets, or properties on the running system which do not exist in the specified file will be removed when the file is applied.

The live state of the system is referred to as the "running" configuration. Without options, pooladm prints out the running configuration.

Before updating the running configuration, pooladm validates the configuration file for correctness.

pooladm does not manipulate pools or psets created by the psrset(8) utility, nor does it destroy psets created through the Oracle Solaris Zones dedicated-cpu resource. It also does not save such pools or psets to the configuration file when using the –s option.


The following options are supported:


Apply the configuration at the given location. If a filename is not specified, it defaults to /etc/pooladm.conf.

Applying a configuration removes any pools and psets that exist on the running system that are not part of the configuration. It also removes and system, pool, pset, or cpu properties which are set on the running system, but are not defined in the new configuration being applied. These pools, psets, or properties could have been created through prior invocations of pooladm -c or poolcfg -dc.

Pools and psets created by psrset(8) and the Oracle Solaris Zones dedicated-cpu resource are not removed, as they are not part of pool configuration files. The –c option may add or take away CPUs, cores, or sockets from Oracle Solaris Zones dedicated-cpu related psets if they are configured with a variable range of CPUs.


Disable the resource pools service. This option will disable the svc:/system/pools:default, which will perform the same action as the –x option, and prevent the default pool configuration file from being applied at next system boot.


Enable the resource pools service. This will enable the svc:/system/pools:default service, which will apply the default pool configuration, and continue to do so on each system boot.


Validate the configuration file without applying it to the running configuration. Checks that there are no syntactic errors and that the configuration can be applied on the running system. No validation of application specific properties is performed.


Save the configuration of the running system to the specified file. If no file is specified, the default pool configuration file /etc/pooladm.conf is used.

This option requires write permission for the specified file.

If this option is used with the –c option, the –c operation is performed first, then the –s operation. The –s operation will capture aspects of the running configuration to the static configuration, such as any new CPUs on the system, or read-only properties related to the runtime state.


Remove the running pool configuration. Destroys all pools and psets, returns all properties to their default values, and returns all CPUs to the default pset. This does not manipulate or destroy pools or psets created by the psrset(8) utility or the Oracle Solaris Zones dedicated-cpu resource, or manipulate the CPUs allocated or assigned to such psets.


The following operands are supported:


Use the configuration contained within this file.


Example 1 Creating a New Pools Configuration File

The following commands clears the currently running pools configuration, and creates a new default pool configuration file with only the default pool, pset, and properties.

example# /usr/sbin/pooladm -x
example# /usr/sbin/pooladm -s
Example 2 Applying a Configuration

The following command applies the configuration contained at /home/admin/newconfig:

example# /usr/sbin/pooladm -c /home/admin/newconfig
Example 3 Validating a Configuration Without Applying It

The following command attempts to apply the configuration contained at /home/admin/newconfig. It displays any error conditions that it encounters, but does not modify the running configuration.

example# /usr/sbin/pooladm -n -c /home/admin/newconfig
Example 4 Removing the Current Configuration

The following command removes the current pool configuration:

example# /usr/sbin/pooladm–x
Example 5 Enabling the Resource Pools Service

The following command enables the resource pools service, causing the default pool configuration to be applied on each system boot.

example# /usr/sbin/pooladm -e
Example 6 Enabling the Resource Pools Service Using SMF

The following command enables the resource pools service through use of the Service Management Facility. See smf(7).

example# /usr/sbin/svcadm enable svc:/system/pools:default
Example 7 Saving the Running Configuration to a Specified Location

The following command saves the running configuration to /tmp/state.backup:

example# /usr/sbin/pooladm -s /tmp/state.backup



Default configuration file for pooladm.


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

Interface Stability
See below.

The invocation is Committed. The output is Uncommitted.

See Also

pset_destroy(2), libpool(3LIB), attributes(7), resource-management(7), smf(7), poolbind(8), poolcfg(8), psrset(8), , svcadm(8)


A process or zone assigned a specific scheduler by the pool.scheduler property will retain that scheduler when bound to another pool without the pool.scheduler property, including when the original pool is destroyed and the process or zone is bound automatically to the default pset. If this behavior is not desired, set the pool.scheduler property on all pools, including pool_default.

Psets managed by pools are independently managed from psets managed by psrset(8). CPUs cannot be transferred between the psets of differing subsystems. CPUs must be removed from psrset(8) psets before they are available for use by the pools framework. CPUs must be in the default pset or another psrset(8) pset before they can be assigned to a psrset(8) pset.

Because the resource pools service is a standard smf(7) service, it can also be enabled and disabled using the standard SMF interfaces.