The Barracuda Load Balancer ADC provides a method for dynamic weighting based on the load of each Real Server called Adaptive Scheduling. When enabled, the Barracuda Load Balancer ADC polls the Real Servers frequently and assigns weights to those Real Servers using the information gathered.
To configure adaptive scheduling for the Barracuda Load Balancer ADC, go to the BASIC > Services page, navigate to the Load Balancing section, and open Advanced Options.
None
By default, Adaptive Scheduling is disabled.
SNMP CPU
This scheduling method polls the Simple Network Management Protocol (SNMP) Object Identifier (OID) for the CPU load and manipulates the Real Server weights accordingly. Weights are assigned to each Real Server by assigning a weight based on the formula (100 − Load). For example, if the CPU load is 23, the result from the formula is 77 (100-23). 77 corresponds to a weight of 9, which is assigned as the weight of the Real Server.
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 in the SNMP Community String field on the Service Detail page. Note: The Real Servers must use a community string of public.
- Make SNMP available on standard SNMP port 161.
- Allow SNMP read access by the corresponding custom virtual interface IP address of the Barracuda Load Balancer ADC.
Microsoft 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.
SNMP on Linux
If you have Linux servers, make sure that you have an SNMP agent installed and running. Barracuda Networks recommends using 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 ADC polls the URL http://[Real Server IP Address]/loadpage where loadpage is the directory or page name specified in the Load URL field. The result from the poll should is returned in the format LOAD=Integer
(showing the load as an integer between 0 and 100).
For the URL request to work, each Real Server must be running a web server that responds to the poll on port 80 and the Real Server’s IP address.
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 in the SNMP Community String field on the Service Detail page.
- Make SNMP available on standard SNMP port 161.
- Allow SNMP read access by the corresponding custom virtual interface IP address of the Barracuda Load Balancer ADC.
Testing the Adaptive Scheduling Settings
When you click Test, the value shown is derived from the Load value specified for each Real Server. You can determine the load value set for the server by subtracting the value show here by 100.
The following example helps to illustrate the values assigned to your configured servers when you click Test for the Adaptive Scheduling configuration:
- 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.
- You need to specify a load value on each of the servers. You configure this value in a file called index.html located on each server. The file is located in the
/var/www/barracuda_load/
folder.
For this example, the index.html file on Server4 would have the following value specified:LOAD = 50
Each of the other servers must include an index.html file with a Load value. For this example, configure the following loads for each of the servers:
Server1:20
Server2:20
Server3:80
Server4:50
- For the HTTP service configuration, navigate to Advanced Options and set Adaptive Scheduling to Load URL and set the Load Threshold to
35
. - 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
You can calculate the load for each Server by subtracting the value generated by the Test function from 100.
Server Calculated Weight Server1 Server 1 is unreachable for polling. Its weight is not calculated and is set to 100. Server2 100 - 80 = 20 Server3 100 - 20 = 80 Server4 100 - 50 = 50 These values match the weights configured in Step 2 except for Server1 which is unreachable.
The following table lists the weight assigned to servers based on the above calculation:
Formula Result Weight 85-100 10 75-84 9 65-74 8 55-64 7 45-54 6 35-44 5 25-34 4 15-24 3 5-14 2 0-4 1 The following table shows the weight assigned to each of the servers in this example based on the previous calculations:
Server Weight Reason Server1 100 Server 1 is unreachable. Server2 100 Load 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 3 Load 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).
- 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.