Balancing

Balancing is the distribution of new endpoints, identified by the combination of unique source and destination address pairs, among the members of the SLB cluster, and sending SIP traffic to the most appropriate member, based on your configuration. You define this balancing by configuring policies to apply to address pair and global balancing configuration. Distribution policies (lb-policy) define and direct traffic specifying target realms by address pairs. After identifying a target realm, or for packets that do no match a distribution policy, the SLB calculates the best cluster member for this traffic from the pool of candidates (lbp-config). The simplest configuration can skip realm participation, instead distributing traffic in a round-robin fashion across the entire pool of cluster members. OCSBCs can also report themselves as overloaded, which excludes them as candidate targets until they report themselves as available for service again.

The section Distribution Policy Configuration expands upon address pair and target realm and, ultimately, candidate pool identification. The load balance config (lbp-config) specifies how to identify the best OCSBC in the candidate pool. Regardless of the distribution method, policy-based or round-robin, the SLB, by default, weighs each candidate OCSBC, and identifies the one with the lowest current utilization. In addition, the lbp-config allows you to specify traffic constraints that controls state timing and the amount of traffic managed by each config.

Within the lbp-config, you can select from two strategies for weighing target OCSBC utilization:

Least Occupied—This strategy distributes to the OCSBC with the least current endpoint count.

Capacity Proportional—This strategy causes the SLB to maintain a calculation using the maximum occupancy and the current endpoint count on each applicable OCSBC. A higher maximum capacity indicates the ability to support a higher number of endpoints.

The SLB balances traffic distribution by checking status detail on each OCSBC in the cluster, and forwarding to the best target, as follows:

  1. If the OCSBC reports itself as overloaded, the SLB skips that OCSBC from consideration.
  2. If the traffic matches a policy, the SLB iterates through the OCSBCs that match the policy using either round robin or capacity proportional (referring to the strategy configuration).
  3. If there is no policy configured, the SLB uses round-robin or capacity-proportional to identify OCSBCs.
    • For least-occupied (default) the SLB selects the OCSBC with the fewest endpoints.
    • For capacity-proportional, the SLB selects the OCSBC with the lowest endpoint to maximum capacity ratio.
  4. The SLB skips over any OCSBC that has exceeded its maximum SLB-assigned endpoints.
  5. The SLB identifies and forward to the target OCSBC.

Contrasting Least Occupied and Capacity Proportional Strategies

When configured for the least occupied strategy, the SLB effectively balances using round-robin distribution. As shown below, each OCSBC gets an equal number of endpoints.

 slb-1# show balancer metrics
              local remote               max        max Over
 SBC   Name   epts  epts   max reg  CPU  CPU   Mem% Mem Load
 -------------------------------------------- -------- -------------
 1021  SBC-1b 501   501    1000     0.2  90.0  21.0 95.0 no
 1022  SBC-1c 501   501    1000     0.1  90.0  21.0 95.0 no 
 1023  SBC-1a 501   501    1200     0.0  90.0  21.0 95.0 no

In the above scenario, each OCSBC hosts 501 of the total 1503 endpoints based on 'round-robin' policy.

SBC-1a, however, has a set to a higher "max reg" value (1200) than the other OCSBCs. This can occur for a variety of reasons, including maximum capacity and available computing resources. The OCSBC reports this value is in every CCP message. When using the capacity proportional approach, the SLB allocates more endpoints to the OCSBCs that have higher maximum registration values. The formula used to weigh the OCSBC is endpoint count (maintained locally), divided by the maximum registration value.

The output below shows how this configuration change would affect the endpoint count.

 slb-1# show balancer metrics
              local remote               max        max Over
 SBC   Name   epts  epts   max reg  CPU  CPU   Mem% Mem Load
 -------------------------------------------- -------- -------------
 1021  SBC-1b 470   470    1000     0.2  90.0  21.0 95.0 no
 1022  SBC-1c 470   470    1000     0.1  90.0  21.0 95.0 no 
 1023  SBC-1a 563   563    1200     0.0  90.0  21.0 95.0 no

In the above scenario, The SLB allocates each OCSBC at 46% of its total limit configured. SBC-1a hosts a larger number endpoints because it supports a higher maximum registration value. Both rebalancing procedures and the exclusion of overloaded OCSBCs are maintained in both least-occupied and capacity-proportional balancing.