Dynamic Rules: Web Server Balancing

Overview

Dynamic rules allow bandwidth management of a group of computers whose IP addresses are not known in advance. This tutorial explains how to use this feature to distribute web server bandwidth between all remote users who may connect to it.

Note: Dynamic rules are only available in Bandwidth Controller Enterprise Edition. See the product feature comparison for more information.

Introduction

A common issue for web servers is that a small group of clients can use up most of the upstream bandwidth, leaving little for other users who are connected. For intranet services it is usually possible to create a rule for each local user who will connect to the resource, but for web server operators this is impractical as the address of each user is effectively random.

The solution is to use dynamic rules which give network administrators the ability to filter connections without knowing their IP address in advance. Dynamic rules achieve this functionality by identifying the streams and creating a new virtual rule for each unique IP address that connects to the server.

The following steps show how to configure Bandwidth Controller to distribute available bandwidth evenly amongst a group of web server clients. It uses a single rule to perform the bandwidth load balancing.

Step 1: Creating a New Rule

Click the Add Rule Wizard button on the toolbar along the top of the main manager window to bring up the wizard.

Click Next to go to the Classification page.

Step 2: Choosing the Traffic Direction

This example distributes the download speed for clients. From the web server's perspective, this means limiting the upstream or upload direction. Click the Direction field and choose Upload. The rule will now process all traffic travelling from the web server to the clients (client download).

Step 3: Selecting HTTP Classification

To limit just HTTP traffic, click the Change button on the right of the Local Endpoint field. This will bring up the Local Endpoint Properties.

Leave the Address section set to All computers and select the Port field at the bottom of the window. Enter in 80 to make the rule process only HTTP traffic coming from the web server, leaving all other traffic untouched.

Click Ok to save the endpoint settings, then click Next twice to go to the Advanced Processing page.

Step 4: Enabling Dynamic Queueing

Uncheck Use separate queue for each local user to disable dynamic queueing for LAN clients, and check Use separate queue for each remote site to turn on dynamic queueing for external users.

Click Next twice to complete the rule creation.

Bandwidth Distribution

Note that in the above diagram the Scale Factor is set to 1. This means any connection that is filtered by this rule will be given an equal share of bandwidth. Each time a new user connects to the web server, the distribution will be updated.

For example, if there are 3 users connected then each will receive 33% of available upstream bandwidth. When another user connects the allocation is changed to 25% each (100% divided by 4 users).

Dynamic rules also allow for users who are not using their full allocation that they are given. For example, if 3 users are connected but one of them is using only 10% of the upstream bandwidth rather than 33%, then the other two users will share the remaining 90% (i.e. 45% each). Likewise, if a user is connected to the server but not currently downloading anything, they will not be counted and the other two computers will receive a full 50% each.

Conclusion

Dynamic rules give web server operators a simple way of sharing bandwidth between clients. But they are useful for more than just the scenario outlined in this tutorial, they also provide batch rule creation functionality by preventing the need to create a separate rule for each user on the network.

Use dynamic rules whenever possible to help save time and manage complexity for your network environment. Dynamic queueing is set by default for local users which means that any rule you create that has an address range or address group for the local endpoint will benefit from this feature.