Windows Live Alerts
Start access
Support Forum
Remote Desktop Services
Terminal Services
Web Interface
Tips & Tools
Lassen Sie sich von einem Experten Beraten

Understanding Citrix Slow-Start load balancing Print E-mail
Written by Thomas Koetzing at Sunday, 12 March 2006

Article Details 
User Rating:   | 69

In larger Farms the "in place" load balancing technology plays a critical role during peak logon periods. Hundreds or even thousand of users start working in a short time frame, resulting in dozen of login requests within seconds. If a server comes online during that time, then every request is send to the new server because the server has no load. Now this server probably gets more than 10 login request per second and means a heavy resource usage for the server.

Due to the heavy resource usage the server might be unable to update its load and becomes unresponsive. Without the load updated, the Farm Data Collector will continue to send new login request to the server. This then looks like as if the server would ďsuck-inĒ all new incoming connections and is commonly known as the black hole effect.

Jeroen van de Kamp and Daniel Nikolic have written an article about the effect and can be found here. They also provide a workaround for the problem.

Citrix Slow-Start load balancing

With the Presentation Server 4.0 HotFix PSE400R01W2K010 & PSE400R01W2K3027, Citrix introduced the Slow-Start load balancing feature that uses Intelligent Load Biasing (ILB) to overcome black hole effects.
But before exploring the ILB, you should first know how the load balancing is working with current Citrix versions.

ServerLoad with previous load bias

The Server load was biased with the following formula:

ServerLoad = ActiveLoad + ConcurrentLogons x Bias

The default Bias of 200 is a constant that is read by IMA at start-up from the registry. The Bais value can be tuned as described in the Citrix knowledgebase article CTX103653.
Using the formula for an empty server that goes online and receives 10 new login requests:

ServerLoad = 0 + 10 x 200 => ServerLoad = 2.000

Example: The average farm load is 8.000 for respectively 60 users with a load evaluator that has a maximum of 100 connections (10.000 max. Load). This would mean that 40 concurrent logins are needed to get the ServerLoad up to 8.000 before the Data Collector would stop sending additional connections to the server.

Server Load graph

ServerLoad with Intelligent Load Biasing

With ILB the ServerLaod was changed completely and replaces actually the previous Load Bias. The Server current login Bias is now calculated with the following formula:

Current Resolution Load += (MAX_LOAD -  Current Resolution Load) / 2

Using the same numbers from the previous example would result in:

Current Resolution Load += (10.000 -  0) / 2 => Current Resolution Load = 5.000

After just one login the load has a value of 5.000! The second login will raise the level to 7.500 and the third login will reach the average Farm load level and therefore the Data Collector will chose the next Presentation Server.

Server Load graph

The ILB adjusts itself back down after pending logons are completed and the logarithmically biased load is replaced with the actual server load. Citrix keeps also track of pending connections in a new load table to make sure the ILB donít adjusts itself to fast. This is the real intelligent part of Citrix Slow-Start load balancing.

This behaviour limits the numbers of concurrent logins but can be changed trough the registry. To allow more concurrent logins the ILBMultiplier value needs to be increased from its default value of 2. The location of the key is

ILBMultiplier REG_DWORD 0x00000002

For example, increasing the value from 2 to 4 will change the Current Resolution Load to the following:

Current Resolution Load += (10.000 -  0) / 4 => Current Resolution Load = 2.500

Back to the example and this time with an ILBMultiplier of 4 would result in 6 concurrent logins to reach the average Farm load of 8.000

Server Load graph

The ILB needs to be tested in real live to proof that itís the adequate solution for the black hole effect. If you encounter any problems with the new ILB, then you can simply disable the ILB by setting UseILB to zero and fall back to the old way of doing it.

UseILB REG_DWORD 0x00000000


NOTE  You have to register in the Forum to post comments with your name.

Write Comment
BBCode:Web AddressEmail AddressBold TextItalic TextUnderlined TextQuoteCodeOpen ListList ItemClose List

Code Verification
CAPTCHA Security Code Security Code *

find or follow me @