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 or Client Application.
Command Line¶
The command-line settings are the values the server starts with. A superuser can change them while the server runs, with the API or the Client Application. When the server saves its state, it saves the limits that are in force. At each later start, a saved value replaces the command-line value, also when you edit the response file. The server log names both values when this happens.
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¶
To change bandwidth control while the server is running, use the API. This works also when limits are given on the command line. The server saves the settings, so they stay after a restart.
Tip
Bandwidth limits can be managed with a graphical user-interface using the Client Application.
Please refer to the updateBandwidthLimits() API call. This function call requires superuser privileges.