Oracle® Solaris Cluster System Administration Guide

Exit Print View

Updated: October 2015

Configuring Load Limits

You can enable the automatic distribution of resource group load across nodes by setting load limits. You can configure a set of load limits for each cluster node. You assign load factors to resource groups, and the load factors correspond to the defined load limits of the nodes. The default behavior is to distribute resource group load evenly across all the available nodes in the resource group's node list.

The resource groups are started on a node from the resource group's node list by the RGM so that the node's load limits are not exceeded. As resource groups are assigned to nodes by the RGM, the resource groups' load factors on each node are summed up to provide a total load. The total load is then compared against that node's load limits.

    A load limit consists of the following items:

  • A user-assigned name.

  • A soft limit value – You can temporarily exceed a soft load limit.

  • A hard limit value – Hard load limits can never be exceeded and are strictly enforced.

You can set both the hard limit and the soft limit in a single command. If one of the limits is not explicitly set, the default value is used. Hard and soft load limits for each node are created and modified with the clnode create-loadlimit, clnode set-loadlimit, and clnode delete-loadlimit commands. See the clnode (1CL) man page for more information.

You can configure a resource group to have a higher priority so that it is less likely to be displaced from a specific node. You can also set a preemption_mode property to determine if a resource group will be preempted from a node by a higher-priority resource group because of node overload. A concentrate_load property also allows you to concentrate the resource group load onto as few nodes as possible. The default value of the concentrate_load property is FALSE by default.

Note -  You can configure load limits on nodes in a global cluster or a zone cluster. You can use the command line, the clsetup utility, or the Oracle Solaris Cluster Manager GUI to configure load limits. For GUI log-in instructions, see How to Access Oracle Solaris Cluster Manager. The following procedure illustrates how to configure load limits using the command line.

How to Configure Load Limits on a Node

You can also use the Oracle Solaris Cluster Manager GUI to create and configure a load limit on a global-cluster node or a zone-cluster node. You can also use the GUI to edit or delete an existing node load limit. For GUI log-in instructions, see How to Access Oracle Solaris Cluster Manager.

  1. Assume a role that provides solaris.cluster.modify RBAC authorization on any node of the global cluster.
  2. Create and set a load limit for the nodes that you want to use load balancing.
    # clnode create-loadlimit -p limitname=mem_load -Z zc1 -p
    softlimit=11 -p hardlimit=20 node1 node2 node3

    In this example, the zone cluster name is zc1 The sample property is called mem_load and has a soft limit of 11 and a hard load limit of 20. Hard and soft limits are optional arguments and default to unlimited if you do not specifically define them. See the clnode (1CL) man page for more information.

  3. Assign load factor values to each resource group.
    # clresourcegroup set -p load_factors=mem_load@50,factor2@1 rg1 rg2

    In this example, the load factors are set on the two resource groups, rg1 and rg2. The load factor settings correspond to the defined load limits of the nodes. You can also perform this step during the creation of the resource group with the clresourceroup create command. See the clresourcegroup (1CL) man page for more information.

  4. If desired, you can redistribute the existing load (clrg remaster).
    # clresourcegroup remaster rg1 rg2

    This command can move resource groups off their current master to other nodes to achieve uniform load distribution.

  5. If desired, you can give some resource groups a higher priority than others.
    # clresourcegroup set -p priority=600 rg1

    The default priority is 500. Resource groups with higher priority values get precedence in node assignment over resource groups with lower priorities.

  6. If desired, you can set the Preemption_mode property.
    # clresourcegroup set -p Preemption_mode=No_cost rg1

    See the clresourcegroup (1CL) man page for more information on the HAS_COST, NO_COST, and NEVER options.

  7. If desired, you can also set the Concentrate_load flag.
    # cluster set -p Concentrate_load=TRUE
  8. If desired, you can specify an affinity between resource groups.

    A strong positive or negative affinity takes precedence over load distribution. A strong affinity can never be violated, nor can a hard load limit. If you set both strong affinities and hard load limits, some resource groups might be forced to remain offline if both constraints cannot be satisfied.

    The following example specifies a strong positive affinity between resource group rg1 in zone cluster zc1 and resource group rg2 in zone cluster zc2.

    # clresourcegroup set -p RG_affinities=++zc2:rg2 zc1:rg1
  9. Verify the status of all global-cluster nodes and zone-cluster nodes in the cluster.
    # clnode status -Z all -v

    The output includes any load limit settings that are defined on the node.