Real Server Rate Limit
This article relates to LoadMaster firmware version 7.2.51.
As of LoadMaster firmware version 7.2.51, there is a Connection Rate Limit field when configuring a Real Server. This allows you to set the maximum number of open Connections Per Second (CPS) that can be sent to a Real Server before it is taken out of rotation. The maximum limit is 100000 (100,000 CPS). If the Connection Rate Limit is set to 0 (the default) the feature is disabled, that is, there is no rate limiting.
If rate limiting is enabled, the LoadMaster limits the number of new connections going to a particular Real Server. If the limit is reached, the Real Server is taken out of rotation/selection (that is, removed from the load balancing scheduling algorithm) until the current period is finished. The 'rate limit period' is 0.1 seconds. Any value less than 10 CPS is handled like 10 CPS.
When a Real Server is taken out of rotation, the current connection will then be scheduled to go to a different Real Server in the Virtual Service (or SubVS). This includes new connections with persistence settings to the rate-limited Real Server - these are also sent to another Real Server when the rate limit is exceeded. If no Real Servers are found, the usual rejection methods are used.
No new connections are sent to the rate-limited Real Server until the current 'rate limit period' expires and the Real Server is returned to the load balancing scheduling process.
The rate value for the Real Server also takes slow start into consideration. At Real Server restart, the CPS limit will get to its full value at the end of the slow start period. For further details on the slow start feature, refer to the section below.
Rate Limiting and Slow Start of Real Servers
The Connection Rate Limit feature can be used in conjunction with the Least Connection Slow Start feature. You can configure the Least Connection Slow Start value in System Configuration > Miscellaneous Options > L7 Configuration.
When using the Least Connection or Weighted Least Connection scheduling methods, a period can be specified globally using the Least Connection Slow Start field during which the number of new connections are throttled and gradually increased to a Real Server which has come online and has returned to the scheduling process. When any Real Server is brought back into service and the Least Connection Slow Start is set to a non-zero value, the LoadMaster throttles new traffic to the Real Server so that it is not potentially overwhelmed by a sudden stream of traffic. Under testing, the observed Connections Per Second (CPS) rate limit is observed to grow slowly over the specified time period until the full Real Server connection capacity is permitted. The slow start applies regardless of the reason the Real Server was removed from the scheduling process (for example, manually disabled, rate-limited, and so on).
The value of this Slow Start period can be between 0(disabled - this is the default) and 600 seconds.
The above screenshot shows an Ixia load generator screen with the load generated in green at the top and the successful connections in yellow below that. The different points on the yellow line are described below:
1. At the start of the test, six Real Servers are each limited to 50 CPS. Therefore, the yellow line shows approximately 300 CPS.
2. Five of the Real Servers are taken out of service, reducing the throughput accordingly to 50 CPS.
3. One Real Server is brought back online with the slow start time set to 30 seconds. You can see the ramp in the graph indicating that the traffic increases gradually to 100 CPS.
4. The slow start time is changed to 15 seconds before another Real Server is re-enabled. Therefore, the ramp is slightly steeper.
5. Another Real Server is re-enabled with the slow start set to 0.
6. The final two Real Servers are brought online with slow start set to 0.
RESTful Application Programming Interface (API) Details
You can set the rate limit of a Real Server by running the modrs command and setting the ratelimit parameter value. For example:
For further details on the RESTful API in general, refer to the Long Term Support (LTS) RESTful API Interface Description.
For PowerShell help, run the Get-Help command for the relevant commands.