If a resource group is configured to execute in a dedicated processor set, Sun Cluster performs the following tasks when it starts a resource of the resource group in a non-global zone:
Creates a pool named SCSLM_pool_zone_name, if this has not already been done.
Creates a dedicated processor set. The size of the processor set is determined by using the RG_SLM_CPU_SHARES and RG_SLM_PSET_MIN properties.
Associates the SCSLM_pool_zone_name pool to the created processor set.
Dynamically binds the non-global zone to the SCSLM_pool_zone_name pool.
Augments the number of CPU shares assigned to the non-global zone with the specified number of CPU shares, if this has not already been done.
Creates a project named SCSLM_resourcegroup_name in the non-global zone, if this has not already been done. This project is specific to the resource group, and is assigned the specified number of CPU shares (project.cpu-shares).
Starts the resource in the SCSLM_resourcegroup_name project.
Set the scheduler for the system to be fair share scheduler (FSS).
# dispadmin -d FSS
FSS becomes the default scheduler on next reboot. To make this configuration take effect immediately, use the priocntl command.
# priocntl -s -C FSS
Using the combination of the priocntl and dispadmin commands ensures that FSS becomes the default schedule immediately and remains so after reboot. For more information about setting a scheduling class, see the dispadmin(1M) and priocntl(1) man pages.
If the FSS is not the default scheduler, your CPU shares assignment will not take effect.
On each node to use CPU control, configure the number of shares for the global zone and the minimum number of CPUs available in the default processor set.
Setting these parameters helps protect processes running in the global zone from competing for CPUs with processes running in non-global zones. If you do not assign a value to the globalzoneshares and defaultpsetmin properties, these properties take their default values.
# clnode set [-p globalzoneshares=integer] \ [-p defaultpsetmin=integer] \ node
Sets the minimum number of CPUs available in the default processor set. The default is 1.
Sets the number of shares assigned to the global zone. The default is 1.
Identifies nodes on which properties are to be set.
In setting these properties, you are setting properties for the global zone.
Verify that you correctly set these properties:
# clnode show node
For the node you specify, the clnode command prints the properties set and the values that are set for these properties. If you do not set the CPU control properties with clnode, they take the default value.
Configure the CPU control facility.
# clresourcegroup create -p RG_SLM_TYPE=automated \ [-p RG_SLM_CPU_SHARES=value] \ -p -y RG_SLM_PSET_TYPE=value \ [-p RG_SLM_PSET_MIN=value] resource_group_name
Enables you to control CPU control usage and automates some steps to configure the Solaris OS for system resource management.
Specifies the number of CPU shares assigned to the resource group-specific project (project.cpu-shares) and determines the number of CPU shares assigned to the non-global zone (zone.cpu-shares) and the maximum number of processors in a processor set.
Enables the creation of a dedicated processor set. To have a dedicated processor set, you can set this property to strong or weak. The values strong and weak are mutually exclusive. That is, you cannot configure resource groups in the same zone so that some are strong and others weak.
Determines the minimum number of processors in the processor set.
Specifies the name of the resource group.
This step creates a resource group. You could alternatively use the clresourcegroup set command to modify an existing resource group.
You cannot set RG_SLM_TYPE to automated in a non-global zone if a pool other than the default pool is in the zone configuration or if the zone is dynamically bound to a pool other than the default pool. See the zonecfg(1M) and poolbind(1M) man pages for information about zone configuration and pool binding respectively. View your zone configuration as follows:
# zonecfg -z zone_name info pool
A resource such as an HAStoragePlus or a LogicalHostname resource configured to start in a non-global zone but with the GLOBAL_ZONE property set to TRUE is started in the global zone. Even if you set the RG_SLM_TYPE property to automated, this resource does not benefit from the CPU shares and dedicated processor set configuration and is treated as in a resource group with RG_SLM_TYPE set to manual.
Activate the configuration change.
Specifies the name of the resource group.
Do not remove or modify the SCSLM_resource_group_name project. You can add more resource control manually to the project, for example by configuring the project.max-lwps property. For more information, see the projmod(1M) man page.
Changes made to RG_SLM_CPU_SHARES and RG_SLM_PSET_MIN while the resource group is online are taken into account dynamically. However, if RG_SLM_PSET_TYPE is set to strong, and if not enough CPUs are available to accommodate the change, the change requested for RG_SLM_PSET_MIN is not applied. In this case, a warning message is displayed. On next switchover, errors because insufficient CPUs can occur if not enough CPUs are available to acknowledge the values that you configured for RG_SLM_PSET_MIN.
If an online resource group is no longer configured for CPU control in the non-global zone, the CPU share value for the non-global zone takes the value of zone.cpu-shares. This parameter has a value of 1 by default.