Load Balancing In Citrix Environments
Tuesday, 12 June 2007 by Michel Roth
I was reading a very interesting article at the Citrix Community site. It's an article by Dave Stone, a 10 year veteran programmer over at Citrix. He's planning on putting up a series of articles that really dive into the murky depths of Citrix Load Balancing. Today he published the first article out of the proposed series. In this first article his discussed the basics of Load Balancing. Nothing a Citrix-savvy person wouldn't know about but interesting enough. The cool part is that David clearly shows that he's a creator, not a user. He helped build the Load Balancing but he doesn't have the experiences from the trenches, that you as the community do. Near the end of his article he has some questions for you to answers. After reading his article I started thinking about why the Advanced Load Evaluator usually at the end of the day, doesn't produce the results you're looking for. Here's why I think this is the case:

In environments where there's an obvious peak in Logons, like offices for example, the best results are usually gained by using the Default (user session) Load Evaluator. This is because the Advanced Load Evaluator seems to spread out users rather erratically. One reason could be the Load that the logon process itself yields. The biggest culprit would however be a human one I guess. Think about it: ALL people usually do the same things when they are starting their working day: drink coffee, check email, drink more coffee, surf web, drink even more coffee, check the intranet and so on..... It's only after that, that they start to really "use" the server. So one does 80 MB Word Documents and tries to rival E=MC2 using excel combined with surfing 5 websites and searching trough a 500 MB Inbox while his neighbouring session does.... well nothing, except for outlook.

This means that approximately every users yields the same load during their first hour of work or so. In the office scenario this means that 75% are logged on in that time frame. After that hour or so, the system gets its "real load" by users starting to do their actual work. So now the advanced Load Evaluator will make the right decisions but it's too late now.... the users are already logged on.

To me it seems that only "historical load balancing" will take care of this. Every user has a it's own "load index". This user load index takes into account what type of user he or she is: is he the Schwarzenegger user or is he the Mr. Bean user? This user load index should be determined by looking at what kind of a load the user yield on the server. It should be measured every time a user logs on. See it as a per user "performance profile" or "User Load Index". This User Load Index becomes more effective as time goes by and should be translated into a definite number, just as is the case with the Server Load index on Citrix servers.

Will we see this in the future? Is this the Adaptive Load Balancing Citrix is talking about? I'm very curious to find out. Time will tell...

I've been talking to Dave Stone and as it turns out, Citrix has been taking a look at what I like to call "Historical Load Balancing". They have managed to do it, they have some issues with it. One is that they have a hard time proving that this way of Load Balancing actually works. Another potential problem is that Historical Load Balancing is a self-affecting system. When Historical Load Balancing is turned on, because of some initial conditions userA is classified as more of a "power user". Because of that, he is load balanced to a more lightly loaded server than userB and so continues to consume more CPU cycles, reinforcing his identity as a power-user. It's a nasty feedback loop.

I have been having this discussion in the comments of the article Dave wrote. What do you have to say about this?

Related Items:

The Future Of Citrix Load Balancing (16 April 2007)
Citrix Presentation Server Load Management - Part 3: Load Evaluators (3 January 2007)
Hotfix PSE400R01W2K3027 For PS4.0 Fixes The "Black Hole Effect" (6 March 2006)
Microsoft Announces Session Based Terminal Server Load Balancing In Longhorn (25 April 2007)
Citrix Presentation Server Load Management - Part 2: Load Biasing (30 November 2006)
Understanding The New Logon Throttling Load Evaluator Options In Citrix Presentation Server 4.5 (6 May 2007)
Load Manager Values Explained (22 January 2007)
A Closer Look At Session Broker Load Balancing In Windows Server 2008 (7 June 2007)
Citrix Plans Enhanced Load balancing Tools (22 June 2005)
Load Balancing Terminal Services (Part 1) (9 May 2006)
Comments (0)