Load balancing considerations
HCL Traveler servers in a Highly Available (HA) environment will perform their own load balancing to ensure best possible performance and consistent user experience.
This should not be confused with a network load balancer. A network load balancer is required to balance traffic for the Domino® HTTP server. HTTP server participation is limited in the sync process and typically only hands off the request to the HCL Traveler server, therefore the network load balancer can use a simple, round-robin approach. See Deployment checklist for HA for more information on the requirements for a network load balancer. Once the request is passed off to the HCL Traveler server, it will be load balanced for processing. To understand how this is done, it is important to understand the HCL Traveler load balancing terminology.
Availability index
The Availability Index (AI) is simply the percent a particular server is available, and is based on current CPU and memory usage as well as several other performance characteristics. The AI does not look at the number of devices being serviced as this value is not a performance health indicator for the system so it is normal for the number of devices serviced to be different for Traveler servers that have the same AI. The AI is generally 0-100%, but can be negative if the server is overloaded or has been classified as unavailable.
Master monitor
Each user is assigned a master monitor the first time his/her device connects. The master monitor is essentially the HCL Traveler server responsible for handling any and all work for that user. If the user connects multiple devices, each device will be routed to the master monitor for processing. If no device connects, the master monitor assignment will expire after 24 hours. On each device connection, the HCL Traveler server will decide if the master monitor should be moved, or if no master monitor is currently assigned, which server to assign the user. The algorithm used to assign master monitors is described in the following sections.
Availability index bias
A bias or weighting is used to improve performance when deciding which server should be the master monitor for a particular user. The two types of bias are local server and current master monitor. Local server is simply the current local server (for example, the server to which the network load balancer routed the connection). The default local server is assigned a bias of 10%. The current master monitor bias is for the server that is currently assigned as the master monitor for this user. The default master monitor bias is 20%. If no master monitor is assigned then no server will get this bias.
Load balancing algorithm
The algorithm used to balance traffic across HCL Traveler servers is a simple one. For each request from the device, the local server will determine what is the best server to handle the request. The best server is determined by comparing the AIs of each server. If any bias applies to a server, it is added to the AI. The server with the highest computed AI is chosen. If this server is not currently the master monitor, then it gets assigned as the master monitor for the user and the master monitor bias will apply. To prevent thrashing, a user's master monitor can not be switched again for at least 10 minutes. The following table shows examples of HCL Traveler load balancing.
Server 1 (Local Server) Bias = 10% | Server 2 No bias | Server 3 (Master Monitor) Bias = 20% | Load balance winner and master monitor | |||
---|---|---|---|---|---|---|
Current AI | AI + Bias | Current AI | AI + Bias | Current AI | AI + Bias | |
90 | 100 | 90 | 90 | 90 | 110 | Server 3 |
70 | 80 | 90 | 90 | 50 | 70 | Server 2 |
85 | 95 | 90 | 90 | 70 | 90 | Server 1 |
notes.ini settings
These notes.ini
parameters can
be used to adjust the previous algorithm. It is recommended to only
change these values in small increments and monitor the systems for
performance changes. In general, the default values should be sufficient.
Setting | Default value | Description |
---|---|---|
NTS_ROUTE_BIND_HOLD_TIME | 60000 (milliseconds) | Minimum time required before a particular user's master monitor can be moved once assigned. |
NTS_ROUTE_LOCAL_BIAS | 10 (Percent) | Bias added to the local server's AI. |
NTS_ROUTE_CURRENT_BIAS | 20 (Percent) | Bias added to the current master monitor server's AI. |