OCSBC Overload Conditions Affecting Load Balancing

Each cluster OCSBC will report an overload status to the OCSLB. Factors which contribute to OCSBC overload determination include SIP thread CPU utilization and overall OCSBC memory threshold.

Even though each clustered OCSBC regularly reports CPU data to the SLB, the OCSBC’s CPU utilization is not factored into the preference of one OCSBC over another. Rather, an OCSBC 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 OCSBCs are licensed for the same number of sessions, an OCSBC with a CPU load of 89% and a current occupancy of 10,000 endpoint will have equal footing with an OCSBC with a CPU load of 10% and a current occupancy of 10,000 endpoint. But an OCSBC with a CPU load of 90% and an occupancy of 0 endpoint will never receive new assignments from the SLB, until its CPU utilization rate falls below the 90% threshold.

When load-balancing traffic, the Oracle Communications Subscriber-Aware Load Balancer (SLB) skips Oracle Communications Session Border Controllers (OCSBCs) 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 OCSBC memory utilization threshold requires that the user consider multiple OCSBC settings, explained below.

An OCSBC's memory utilization threshold is the percentage of overall system memory utilization that, when exceeded, triggers the OCSBC to set its overload flag. The OCSBC then tells the SLB it is overloaded via the standard update process. The OCSBC sets this same flag when CPU utilization exceeds its overload threshold. When memory and CPU utilization fall below their thresholds, the OCSBC 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 OCSBC refers to this and two other settings to determine when it notifies the SLB 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:

  1. The OCSBC refers to its memory-utilization-threshold setting. If set, use that value for the steps below.
  2. The OCSBC 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.
  3. The OCSBC 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.
  4. If the memory-utilization-threshold value is lower than the alarm and heap-threshold, the OCSBC uses its value.

If none of these values are set explicitly, the OCSBC 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 OCSBC's running configuration to see these settings.