| Skip Navigation Links | |
| Exit Print View | |
|
System Administration Guide: Oracle Solaris Containers-Resource Management and Oracle Solaris Zones Oracle Solaris Legacy Containers |
1. Introduction to Solaris 10 Resource Management
2. Projects and Tasks (Overview)
3. Administering Projects and Tasks
4. Extended Accounting (Overview)
5. Administering Extended Accounting (Tasks)
6. Resource Controls (Overview)
7. Administering Resource Controls (Tasks)
8. Fair Share Scheduler (Overview)
9. Administering the Fair Share Scheduler (Tasks)
10. Physical Memory Control Using the Resource Capping Daemon (Overview)
11. Administering the Resource Capping Daemon (Tasks)
13. Creating and Administering Resource Pools (Tasks)
Administering Dynamic Resource Pools (Task Map)
Enabling and Disabling the Pools Facility
Solaris 10 11/06 and Later: How to Enable the Resource Pools Service Using svcadm
Solaris 10 11/06 and Later: How to Disable the Resource Pools Service Using svcadm
Solaris 10 11/06 and Later: How to Enable the Dynamic Resource Pools Service Using svcadm
Solaris 10 11/06 and Later: How to Disable the Dynamic Resource Pools Service Using svcadm
How to Enable Resource Pools Using pooladm
How to Disable Resource Pools Using pooladm
How to Create a Static Configuration
How to Associate a Pool With a Scheduling Class
How to Set Configuration Constraints
How to Define Configuration Objectives
How to Move CPUs Between Processor Sets
Activating and Removing Pool Configurations
How to Activate a Pools Configuration
How to Validate a Configuration Before Committing the Configuration
How to Remove a Pools Configuration
Setting Pool Attributes and Binding to a Pool
How to Bind Processes to a Pool
How to Bind Tasks or Projects to a Pool
How to Set the project.pool Attribute for a Project
How to Use project Attributes to Bind a Process to a Different Pool
Using poolstat to Report Statistics for Pool-Related Resources
Displaying Default poolstat Output
Producing Multiple Reports at Specific Intervals
Reporting Resource Set Statistics
14. Resource Management Configuration Example
15. Resource Control Functionality in the Solaris Management Console
16. Introduction to Solaris Zones
17. Non-Global Zone Configuration (Overview)
18. Planning and Configuring Non-Global Zones (Tasks)
19. About Installing, Halting, Cloning, and Uninstalling Non-Global Zones (Overview)
20. Installing, Booting, Halting, Uninstalling, and Cloning Non-Global Zones (Tasks)
21. Non-Global Zone Login (Overview)
22. Logging In to Non-Global Zones (Tasks)
23. Moving and Migrating Non-Global Zones (Tasks)
24. Oracle Solaris 10 9/10: Migrating a Physical Oracle Solaris System Into a Zone (Tasks)
25. About Packages and Patches on an Oracle Solaris System With Zones Installed (Overview)
27. Oracle Solaris Zones Administration (Overview)
28. Oracle Solaris Zones Administration (Tasks)
29. Upgrading an Oracle Solaris 10 System That Has Installed Non-Global Zones
30. Troubleshooting Miscellaneous Oracle Solaris Zones Problems
31. About Branded Zones and the Linux Branded Zone
32. Planning the lx Branded Zone Configuration (Overview)
33. Configuring the lx Branded Zone (Tasks)
34. About Installing, Booting, Halting, Cloning, and Uninstalling lx Branded Zones (Overview)
35. Installing, Booting, Halting, Uninstalling and Cloning lx Branded Zones (Tasks)
36. Logging In to lx Branded Zones (Tasks)
37. Moving and Migrating lx Branded Zones (Tasks)
38. Administering and Running Applications in lx Branded Zones (Tasks)
Use the -s option to /usr/sbin/pooladm to create a static configuration file that matches the current dynamic configuration. Unless a different file name is specified, the default location /etc/pooladm.conf is used.
Commit your configuration using the pooladm command with the -c option. Then, use the pooladm command with the -s option to update the static configuration to match the state of the dynamic configuration.
Note - The new functionality pooladm -s is preferred over the previous functionality poolcfg -c discover for creating a new configuration that matches the dynamic configuration.
Before You Begin
Enable pools on your system.
The System Administrator role includes the Process Management profile. For more information about roles, see Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.
# pooladm -s
Note that the configuration contains default elements created by the system.
# poolcfg -c info
system tester
string system.comment
int system.version 1
boolean system.bind-default true
int system.poold.pid 177916
pool pool_default
int pool.sys_id 0
boolean pool.active true
boolean pool.default true
int pool.importance 1
string pool.comment
pset pset_default
pset pset_default
int pset.sys_id -1
boolean pset.default true
uint pset.min 1
uint pset.max 65536
string pset.units population
uint pset.load 10
uint pset.size 4
string pset.comment
boolean testnullchanged true
cpu
int cpu.sys_id 3
string cpu.comment
string cpu.status on-line
cpu
int cpu.sys_id 2
string cpu.comment
string cpu.status on-line
cpu
int cpu.sys_id 1
string cpu.comment
string cpu.status on-line
cpu
int cpu.sys_id 0
string cpu.comment
string cpu.status on-line# pooladm -c
# pooladm -s /tmp/backup
To enhance your configuration, create a processor set named pset_batch and a pool named pool_batch. Then join the pool and the processor set with an association.
Note that you must quote subcommand arguments that contain white space.
The System Administrator role includes the Process Management profile. For more information about roles, see Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.
# poolcfg -c 'create pset pset_batch (uint pset.min = 2; uint pset.max = 10)'
# poolcfg -c 'create pool pool_batch'
# poolcfg -c 'associate pool pool_batch (pset pset_batch)'
# poolcfg -c info
system tester
string system.comment kernel state
int system.version 1
boolean system.bind-default true
int system.poold.pid 177916
pool pool_default
int pool.sys_id 0
boolean pool.active true
boolean pool.default true
int pool.importance 1
string pool.comment
pset pset_default
pset pset_default
int pset.sys_id -1
boolean pset.default true
uint pset.min 1
uint pset.max 65536
string pset.units population
uint pset.load 10
uint pset.size 4
string pset.comment
boolean testnullchanged true
cpu
int cpu.sys_id 3
string cpu.comment
string cpu.status on-line
cpu
int cpu.sys_id 2
string cpu.comment
string cpu.status on-line
cpu
int cpu.sys_id 1
string cpu.comment
string cpu.status on-line
cpu
int cpu.sys_id 0
string cpu.comment
string cpu.status on-line
pool pool_batch
boolean pool.default false
boolean pool.active true
int pool.importance 1
string pool.comment
pset pset_batch
pset pset_batch
int pset.sys_id -2
string pset.units population
boolean pset.default true
uint pset.max 10
uint pset.min 2
string pset.comment
boolean pset.escapable false
uint pset.load 0
uint pset.size 0
cpu
int cpu.sys_id 5
string cpu.comment
string cpu.status on-line
cpu
int cpu.sys_id 4
string cpu.comment
string cpu.status on-line# pooladm -c
# pooladm -s /tmp/backup
You can associate a pool with a scheduling class so that all processes bound to the pool use this scheduler. To do this, set the pool.scheduler property to the name of the scheduler. This example associates the pool pool_batch with the fair share scheduler (FSS).
The System Administrator role includes the Process Management profile. For information on how to create the role and assign the role to a user, see “Managing RBAC (Task Map)” in System Administration Guide: Security Services.
# poolcfg -c 'modify pool pool_batch (string pool.scheduler="FSS")'
# poolcfg -c info
system tester
string system.comment
int system.version 1
boolean system.bind-default true
int system.poold.pid 177916
pool pool_default
int pool.sys_id 0
boolean pool.active true
boolean pool.default true
int pool.importance 1
string pool.comment
pset pset_default
pset pset_default
int pset.sys_id -1
boolean pset.default true
uint pset.min 1
uint pset.max 65536
string pset.units population
uint pset.load 10
uint pset.size 4
string pset.comment
boolean testnullchanged true
cpu
int cpu.sys_id 3
string cpu.comment
string cpu.status on-line
cpu
int cpu.sys_id 2
string cpu.comment
string cpu.status on-line
cpu
int cpu.sys_id 1
string cpu.comment
string cpu.status on-line
cpu
int cpu.sys_id 0
string cpu.comment
string cpu.status on-line
pool pool_batch
boolean pool.default false
boolean pool.active true
int pool.importance 1
string pool.comment
string pool.scheduler FSS
pset batch
pset pset_batch
int pset.sys_id -2
string pset.units population
boolean pset.default true
uint pset.max 10
uint pset.min 2
string pset.comment
boolean pset.escapable false
uint pset.load 0
uint pset.size 0
cpu
int cpu.sys_id 5
string cpu.comment
string cpu.status on-line
cpu
int cpu.sys_id 4
string cpu.comment
string cpu.status on-line# pooladm -c
# pooladm -s /tmp/backup
Constraints affect the range of possible configurations by eliminating some of the potential changes that could be made to a configuration. This procedure shows how to set the cpu.pinned property.
In the following examples, cpuid is an integer.
The System Administrator role includes the Process Management profile. For more information about roles, see Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.
# poolcfg -c 'modify cpu <cpuid> (boolean cpu.pinned = true)'
# poolcfg -dc 'modify cpu <cpuid> (boolean cpu.pinned = true)'
You can specify objectives for poold to consider when taking corrective action.
In the following procedure, the wt-load objective is being set so that poold tries to match resource allocation to resource utilization. The locality objective is disabled to assist in achieving this configuration goal.
The System Administrator role includes the Process Management profile. For more information about roles, see Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.
# poolcfg -c 'modify system tester (string system.poold.objectives="wt-load")'
# poolcfg -c 'modify pset pset_default (string pset.poold.objectives="locality none")'
# poolcfg -c 'modify pset pset_batch (string pset.poold.objectives="locality none")'
# poolcfg -c info
system tester
string system.comment
int system.version 1
boolean system.bind-default true
int system.poold.pid 177916
string system.poold.objectives wt-load
pool pool_default
int pool.sys_id 0
boolean pool.active true
boolean pool.default true
int pool.importance 1
string pool.comment
pset pset_default
pset pset_default
int pset.sys_id -1
boolean pset.default true
uint pset.min 1
uint pset.max 65536
string pset.units population
uint pset.load 10
uint pset.size 4
string pset.comment
boolean testnullchanged true
string pset.poold.objectives locality none
cpu
int cpu.sys_id 3
string cpu.comment
string cpu.status on-line
cpu
int cpu.sys_id 2
string cpu.comment
string cpu.status on-line
cpu
int cpu.sys_id 1
string cpu.comment
string cpu.status on-line
cpu
int cpu.sys_id 0
string cpu.comment
string cpu.status on-line
pool pool_batch
boolean pool.default false
boolean pool.active true
int pool.importance 1
string pool.comment
string pool.scheduler FSS
pset batch
pset pset_batch
int pset.sys_id -2
string pset.units population
boolean pset.default true
uint pset.max 10
uint pset.min 2
string pset.comment
boolean pset.escapable false
uint pset.load 0
uint pset.size 0
string pset.poold.objectives locality none
cpu
int cpu.sys_id 5
string cpu.comment
string cpu.status on-line
cpu
int cpu.sys_id 4
string cpu.comment
string cpu.status on-line# pooladm -c
# pooladm -s /tmp/backup
To specify the level of logging information that poold generates, set the system.poold.log-level property in the poold configuration. The poold configuration is held in the libpool configuration. For information, see poold Logging Information and the poolcfg(1M) and libpool(3LIB) man pages.
You can also use the poold command at the command line to specify the level of logging information that poold generates.
The System Administrator role includes the Process Management profile. For more information about roles, see Using the Solaris Management Tools With RBAC (Task Map) in System Administration Guide: Basic Administration.
# /usr/lib/pool/poold -l INFO
For information about available parameters, see poold Logging Information. The default logging level is NOTICE.
The poolcfg command with the -f option can take input from a text file that contains poolcfg subcommand arguments to the -c option. This method is appropriate when you want a set of operations to be performed. When processing multiple commands, the configuration is only updated if all of the commands succeed. For large or complex configurations, this technique can be more useful than per-subcommand invocations.
Note that in command files, the # character acts as a comment mark for the rest of the line.
$ cat > poolcmds.txt create system tester create pset pset_batch (uint pset.min = 2; uint pset.max = 10) create pool pool_batch associate pool pool_batch (pset pset_batch)
The System Administrator role includes the Process Management profile. For information on how to create the role and assign the role to a user, see “Managing RBAC” in System Administration Guide: Security Services.
# /usr/sbin/poolcfg -f poolcmds.txt