How does the ThinLinc load-balancer work?

ThinLinc can be installed and configured in a number of different ways. For example, an administrator may install ThinLinc on a single server, which is a quick and easy way to configure ThinLinc for smaller installations. For larger installations, an administrator may choose to install ThinLinc across multiple servers in a cluster configuration instead.

A cluster configuration has several advantages. Firstly, because there are multiple servers instead of just one, a cluster configuration gives an additional layer of redundancy. If one of the ThinLinc servers goes offline for some reason, or is taken down for maintenance, the other servers are still available to host user sessions.

Another advantage is that user sessions are able to be spread across multiple servers, instead of all sessions being placed on the same one. This helps ensure that users have access to a more equal share of compute resources, and that not everybody is competing for them at once. This spreading of sessions across multiple servers in a cluster is handled by the ThinLinc load-balancer, which determines the best server in the cluster on which to start a new session.

Each agent server in the cluster is periodically assigned a score, and the agent with the best score is the one on which new sessions will be created. There are several configuration parameters which are taken into account when calculating an agent’s score:

  • /vsmserver/ram_per_user: This parameter determines how much RAM each session could be expected to consume
  • /vsmserver/bogomips_per_user: This parameter determines how much CPU time each session could be expected to consume
  • /vsmserver/existing_users_weight: This parameter determines how much importance to give an existing user on the server when calculating the score

There are also a number of ways an agent can be given “penalty points”. These penalty points negatively affect an agents final score, and are given in situations where the agent misbehaves; for example, if it is not responsive, or fails to start a session. As the agent recovers from whatever was causing the problem, the penalty points are gradually reduced.

The final score is a reflection of how many more sessions an agent could theoretically handle. The agent with the best score will be the one capable of handling the highest number of additional sessions, and this is the one on which new sessions will be started.

For more information on ThinLinc architecture, see TAG Chapter 2.  ThinLinc Architecture.

For more information on how to configure ThinLinc servers in a cluster, see TAG Chapter 14.  Server Configuration.

For more information on paramaters used to configure load-balancing within ThinLinc, see TAG 14.2.  Server Configuration Parameters