We use cookies on our website to ensure we provide you with the best experience on our website. By using our website, you agree to the use of cookies for analytics and personalized content.This website uses cookies. More Information
It seems like your browser didn't download the required fonts. Please revise your security settings and try again.
Barracuda Load Balancer

How to Configure Adaptive Scheduling

  • Last updated on

This article refers to firmware versions 3.0 and above.

The Barracuda Load Balancer provides a method for dynamic weighting based on the load of each Real Server called Adaptive Scheduling. When enabled, the Barracuda Load Balancer polls the Real Servers frequently and assigns weights to those Real Servers using the information gathered. To select the adaptive scheduling method:

  1. Go to the BASIC > Services page and edit the Service.
  2. On the Service Detail page, in the Policy section, select the desired Adaptive Scheduling option.
  3. Click Save Changes.

Select from the following options:

None

None disables Adaptive Scheduling.

SNMP CPU

This scheduling method polls the SNMP OID on each Real Server for CPU load and manipulates the weights accordingly. Weights are assigned to each Real Server using the formula (100−load). For example, if the CPU load is 23, the Real Server is assigned a weight of 77.

The Real Servers must have an SNMP agent installed that supports the SNMP OID for CPU load. You may need to install an SNMP agent and possibly an agent extension on your Real Servers. The default OID for Linux is 1.3.6.1.4.1.2021.10.1.3.1 and for Windows is 1.3.6.1.4.1.9600.1.1.5.1.5.1.48, but you can customize these by editing the Service.

Additionally, the Real Servers must:

  • Allow access using the community name specified on the Service Detail page.
  • Make SNMP available on the standard SNMP port of 161.
  • Allow SNMP read access by the LAN IP address of the Barracuda Load Balancer, if in route-path mode, or the WAN IP address, if in DSR mode.
About the Windows SNMP Agent

The Windows SNMP Agent that comes with Microsoft Windows 2003 or higher does not support the required OID for CPU load. Because of this, you need to install either an extension to the Windows SNMP agent or a new SNMP agent that supports the CPU load OID on the Windows servers

Some administrators have successfully installed the SNMP Informant Standard agent, which is a free SNMP extension agent available from Informant Systems, Inc. It runs in conjunction with the Windows SNMP agent and supports the OID for CPU load.

About SNMP on Linux Systems

If you have Linux servers, make sure that you have an SNMP agent installed and running. Several Barracuda customers have reported successful use of Net-SNMP which supports the OID for CPU load.

Load URL

This scheduling method polls a URL which returns a load value. When selected, the Barracuda Load Balancer polls the URL http://[Real Server IP Address]/loadpage where loadpage is the directory or page name specified in the Load URL box. The result from the poll should look like LOAD=23 (showing the load as an integer between 0 and 100). Weights are assigned to each Real Server using the formula (100 − Load). For example, if the Load URL value is 23, the Real Server is assigned a weight of 77.

For the URL request to work, each Real Server must be running a web server that responds to the poll at the Real Server’s IP address and port 80.

Terminal Sessions

This scheduling method dynamically redistributes connections between Windows Terminal Servers based on the number of sessions per server determined by an SNMP query.

The Real Servers must:

  • Allow access using the community name specified on the Service Detail page.
  • Make SNMP available on the standard SNMP port of 161.
  • Allow SNMP read access by the LAN IP address of the Barracuda Load Balancer, if in route-path mode, or the WAN IP address, if in DSR mode.

Testing the Adaptive Scheduling Settings

When you click Test, the value shown is a subtraction of the Load value. To determine the load value set on the server, subtract this value by 100.

If the server is unreachable, you should know the expected value generated by clicking Test and the weight assigned to the unreachable server (which should be similar to a server on which polling has failed but which is still reachable).

The following example helps to illustrate the values assigned to your configured servers when you click Test for the Adaptive Scheduling configuration:

  1. Create an HTTP service and configure it with the four servers. Name the servers Server1, Server2, Server3, and Server4. For this example, Server1 should be inaccessible.
  2. Configure the following weights for each of the servers (click Edit next to each Server and enter a new value in the Weight field):
    Server1: 20
    Server2: 20
    Server3: 80
    Server4: 50
  3. For the HTTP service configuration, show Advanced Options and set Adaptive Scheduling to Load URL and set the Load Threshold to 35.
  4. Click Test. The Barracuda Load Balancer ADC should generate the following output (this is result of the Formula as described in Step 6):
    Server1 100
    Server2 80
    Server3 20
    Server4 50
  5. You can calculate the weight configured for each Server by subtracting the value generated by the Test function from 100.

    ServerCalculated Weight
    Server1Server 1 is unreachable for polling. Its weight is not calculated and is set to 100.
    Server2100 - 80 = 20
    Server3100 - 20 = 80
    Server4100 - 50 = 50

    These values match the weights configured in Step 2 except for Server1 which is unreachable.

  6. The following table lists the weight assigned to servers based on the above calculation:

    Formula ResultWeight
    85-10010
    75-849
    65-748
    55-647
    45-546
    35-445
    25-344
    15-243
    5-142
    0-41
  7. The following table shows the weight assigned to each of the servers in this example based on the previous calculations:

    ServerWeightReason
    Server1 100Server 1 is unreachable.
    Server2 100Load for Server2 is 20. 20 < Load Threshold (configured as 35). The weight for Server2 is not calculated and it is instead set to 100.
    Server3 3Load for Server3 is 80. 80 > Load Threshold. The weight for Server3 is set to 3 (formula result is 20).
    Server4 6

    Load for Server 4 is 50. 50 > Load Threshold. The weight for Server4 is set to 6 (formula result is 50).

  8. If the actual load is greater than the configured Load Threshold, the weight is adjusted based on the formula result which can be displayed by clicking the Test.

Related Articles

Last updated on