Go to main content

Administering an Oracle® Solaris Cluster 4.4 Configuration

Exit Print View

Updated: November 2019
 
 

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(8CL) 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 browser interface to configure load limits. For Oracle Solaris Cluster Manager log-in instructions, see How to Access Oracle Solaris Cluster Manager. The following procedure illustrates how to configure load limits by using the command line.

How to Configure Load Limits on a Node


Note -  You can also use the Oracle Solaris Cluster Manager browser interface to create and configure a load limit on a global-cluster node or a zone-cluster node, or to edit or delete an existing node load limit. Click Nodes or Zone Clusters then click the name of the node to access its page. For Oracle Solaris Cluster Manager log-in instructions, see How to Access Oracle Solaris Cluster Manager.
  1. Assume the root role or a role that provides solaris.cluster.modify 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.

    In the following example command, 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(8CL) man page for more information.

    # clnode create-loadlimit -p limitname=mem_load -Z zc1 \
    -p softlimit=11 -p hardlimit=20 node1 node2 node3
  3. Assign load factor values to each resource group.

    In the following example command, 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.

    # clresourcegroup set -p load_factors=mem_load@50,factor2@1 rg1 rg2

    You can also perform this step during the creation of the resource group with the clresourceroup create command. See the clresourcegroup(8CL) man page for more information.

  4. If desired, perform one or more additional optional configuration tasks.
    • Redistribute the existing load.
      # clresourcegroup remaster rg1 rg2

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

    • Assign 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.

    • Set the Preemption_mode property.
      # clresourcegroup set -p Preemption_mode=No_cost rg1

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

    • Set the Concentrate_load flag.
      # cluster set -p Concentrate_load=TRUE
    • 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
  5. 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.