SBC Overload Conditions Affecting Load Balancing
Each cluster SBC will report an overload status to the Subscriber-Aware Load Balancer. Factors which contribute to SBC overload determination include SIP thread CPU utilization and overall SBC memory threshold.
Even though each clustered SBC regularly reports CPU data to the Subscriber-Aware Load Balancer, the SBC’s CPU utilization is not factored into the preference of one SBC over another. Rather, an SBC whose CPU utilization rate, determined using a per-thread CPU load check of the busiest call-related threads (SIP and MBCD), exceeds its load limit threshold (by default, 90%) is excluded from the list of candidates. For example, assuming that both SBCs are licensed for the same number of sessions, an SBC with a CPU load of 89% and a current occupancy of 10,000 endpoint will have equal footing with an SBC with a CPU load of 10% and a current occupancy of 10,000 endpoint. But an SBC with a CPU load of 90% and an occupancy of 0 endpoint will never receive new assignments from the Subscriber-Aware Load Balancer, until its CPU utilization rate falls below the 90% threshold.
When load-balancing traffic, the Subscriber-Aware Load Balancer skips SBCs that report overloaded memory or CPU. CPU utilization is measured on a per-thread basis, referring to each SIP and MBCD thread for their resource utilization. Configuring the applicable SBC memory utilization threshold requires that the user consider multiple SBC settings, explained below.
An SBC's memory utilization threshold is the percentage of overall system memory utilization that, when exceeded, triggers the SBC to set its overload flag. The SBC then tells the Subscriber-Aware Load Balancer it is overloaded via the standard update process. The SBC sets this same flag when CPU utilization exceeds its overload threshold. When memory and CPU utilization fall below their thresholds, the SBC clears the overload flag.
The memory-utilization-threshold in the system-config allows the user to explicitly set the memory utilization threshold used for load balancing. During operation, the SBC refers to this and two other settings to determine when it notifies the Subscriber-Aware Load Balancer that it is in a memory overload condition. These settings include any user-configured critical memory alarm value and the system-config, heap-threshold option setting. The operational process, which effectively determines the lowest of these settings, is as follows:
- The SBC refers to its memory-utilization-threshold setting. If set, use that value for the steps below.
- The SBC refers to its alarm configuration. If there is a critical memory alarm value lower than the memory-utilization-threshold, the system sets the memory-utilization-threshold to that alarm's setting.
- The SBC refers to its heap-threshold setting. If lower than the memory-utilization-threshold and the alarm setting, the system sets the memory-utilization-threshold to the heap-threshold's setting.
- If the memory-utilization-threshold value is lower than the alarm and heap-threshold, the SBC uses its value.
If none of these values are set explicitly, the SBC uses the heap-threshold default of 90%.
Values for the system-config's memory-utilization-threshold option range from 1% to 95%. The syntax below shows the option set to 75%.
ORACLE(system-config)#options +memory-utilization-threshold=75
The user can display the SBC's running configuration to see these settings.