Dynamic throttling

Important: A dynamic bandwidth throttling implementation is not recommended. It is highly recommended that you configure static bandwidth throttling. For more details, see Static throttling. If you would still like to use dynamic bandwidth throttling in your deployment, as these bandwidth calculations are not reliable or predictable (this is especially true in low bandwidth network environments), contact our HCL Support team for implementing and testing dynamic bandwidth throttling within your deployment and network.

When a large download becomes available, each link in your deployment might have unique bandwidth issues.

There are server-to-client, server-to-relay, and relay-to-client links to consider, and each might require individual adjustment. As explained elsewhere, it is possible to simply set a maximum value (throttle) for the data rates, and for this there are broad-based policies you can follow. You might, for example, throttle a BigFix Client to 2Kb/s if it is more than three hops from a Relay. However, the optimal data rates can vary significantly, depending on the current hierarchy and the network environment.

A better technique is to use dynamic bandwidth throttling, which monitors and analyzes overall network capacity. Whereas normal throttling simply specifies a maximum data rate, dynamic throttling adds a "busy time" percentage. This is the fraction of the bandwidth that you want to allocate when the network is busy. For example, you could specify that downloads do not use any more than 10% of the available bandwidth whenever the program detects existing network traffic. Dynamic throttling also provides for a minimum data rate, in the case the busy percentage is too low to be practical.

When you enable dynamic throttling for any given link, the program monitors and analyzes the existing data throughput to establish an appropriate data rate. If there is no competing traffic, the throughput is set to the maximum rate. In the case of existing traffic, the program throttles the data rate to the specified percentage or the minimum rate, whichever is higher. You must enable dynamic throttling on both the server and the client side to have it work correctly.

You control dynamic bandwidth throttling with computer settings. There are four basic settings for each link:
DynamicThrottleEnabled
This setting defaults to zero (disabled). Any other value enables dynamic throttling for the given link.
DynamicThrottleMax
This setting usually defaults to the maximum unsigned integer value, which indicates full throttle. Depending on the link, this value sets the maximum data rate in bits or kilobits per second.
DynamicThrottleMin
This setting defaults to zero. Depending on the link, this value sets the minimum data rate in bits or kilobits per second. This value places a lower limit on the percentage rate given below.
DynamicThrottlePercentage
This setting defaults to 100%, which has the same effect as normal (non-dynamic) throttling.. It represents the fraction of the maximum bandwidth you want to use when the network is busy. It typically has a value between five and ten percent, to prevent it from dominating existing network traffic. (A zero for this setting is the same as 100%.).

As with any other setting, you can create or edit the dynamic bandwidth settings by right-clicking an item (or group of items) in any computer list and choosing Edit Computer Settings from the context menu.

The specific variable names include:
The BigFix server and relay settings:
_BESRelay_HTTPServer_DynamicThrottleEnabled
_BESRelay_HTTPServer_DynamicThrottleMaxKBPS
_BESRelay_HTTPServer_DynamicThrottleMinKBPS
_BESRelay_HTTPServer_DynamicThrottlePercentage
The BigFix Client settings:
_BESClient_Download_DynamicThrottleEnabled
_BESClient_Download_DynamicThrottleMaxBytesPerSecond
_BESClient_Download_DynamicThrottleMinBytesPerSecond
_BESClient_Download_DynamicThrottlePercentage
The Gathering settings:
_BESGather_Download_DynamicThrottleEnabled
_BESGather_Download_DynamicThrottleMaxBytesPerSecond
_BESGather_Download_DynamicThrottleMinBytesPerSecond
_BESGather_Download_DynamicThrottlePercentage
Note: For any of these settings to take effect, you must restart the affected services (Server, Relay, or Client).

If you set a Server and its connected Client to differing maximums or minimums, the connection chooses the smaller value of the two.