Balancing
Balancing is the distribution of new endpoints, identified by the combination of unique source and destination address pairs, among the members of the Subscriber-Aware Load Balancer 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 Subscriber-Aware Load Balancer 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. SBCs 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 SBC in the candidate pool. Regardless of the distribution method, policy-based or round-robin, the Subscriber-Aware Load Balancer, by default, weighs each candidate SBC, 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 SBC utilization:
Least Occupied—This strategy distributes to the SBC with the least current endpoint count.
Capacity Proportional—This strategy causes the Subscriber-Aware Load Balancer to maintain a calculation using the maximum occupancy and the current endpoint count on each applicable SBC. A higher maximum capacity indicates the ability to support a higher number of endpoints.
The Subscriber-Aware Load Balancer balances traffic distribution by checking status detail on each SBC in the cluster, and forwarding to the best target, as follows:
- If the SBC reports itself as overloaded, the Subscriber-Aware Load Balancer skips that SBC from consideration.
- If the traffic matches a policy, the Subscriber-Aware Load Balancer iterates through the SBCs that match the policy using either round robin or capacity proportional (referring to the strategy configuration).
- If there is no policy configured, the Subscriber-Aware Load Balancer uses round-robin or capacity-proportional to identify SBCs.
- For least-occupied (default) the Subscriber-Aware Load Balancer selects the SBC with the fewest endpoints.
- For capacity-proportional, the Subscriber-Aware Load Balancer selects the SBC with the lowest endpoint to maximum capacity ratio.
- The Subscriber-Aware Load Balancer skips over any SBC that has exceeded its maximum Subscriber-Aware Load Balancer-assigned endpoints.
- The Subscriber-Aware Load Balancer identifies and forward to the target SBC.
Contrasting Least Occupied and Capacity Proportional Strategies
When configured for the least occupied strategy, the Subscriber-Aware Load Balancer effectively balances using round-robin distribution. As shown below, each SBC 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 SBC 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 SBCs. This can occur for a variety of reasons, including maximum capacity and available computing resources. The SBC reports this value is in every CCP message. When using the capacity proportional approach, the Subscriber-Aware Load Balancer allocates more endpoints to the SBCs that have higher maximum registration values. The formula used to weigh the SBC 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 Subscriber-Aware Load Balancer allocates each SBC 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 SBCs are maintained in both least-occupied and capacity-proportional balancing.