Bandwidth Management

JetStream servers can be set up with incoming and outgoing bandwidth limits, to control the total bandwidth the server can consume.

In addition to setting an incoming or outgoing limit, a policy can be set up to borrow (or share) unused bandwidth between the two limits. Enabling borrowing would allow for maximum utilization of the bandwidth allocated to the JetStream server.

For example, a server is allocated 500Mbit/s total, of which 200Mbit/s is used for incoming bandwidth, and 300Mbit/s for outgoing bandwidth limits. By enabling incoming bandwidth borrowing, outgoing transfers will be able to consume the full 500Mbit/s when there are no incoming transfers. If a new incoming transfer arrives, the incoming bandwidth would be automatically reallocated to the incoming transfer.

The bandwidth control settings can be either specified statically on the command line, or dynamically using the API.

Command Line

If bandwidth control settings are specified on the command line, it is not be possible to change them while the server is running. A server restart is required to update the settings.

To setup bandwith allocation statically, please refer to --incoming-rate-limit, --outgoing-rate-limit, --borrow-incoming-rate, and --borrow-outgoing-rate to specfy them on command line or the response file.

API

If you have the need to change bandwidth control dynamically while the server is running, you can do so using the API, so long as limits are not already specified on the command line. Any bandwidth control settings will be persisted across server restarts.

Please refer to the updateBandwidthLimits() API call. This function call requires superuser privileges.