Load evaluators are a great way of ensuring your systems don’t get overloaded. They basically stop any further connections using pre defined limits set by you. Here i discuss how to use, configure and monitor them.
There are two default evaluators built in to Citrix as below:
Default Load Evaluator
Contains one rule - Server User Load which is set to 100.
Advanced
Contains three rules -
CPU Utilization is set to 90%.
Memory Usage reports full load on 90%.
Reports full load when the number of page swaps is greater than 100 per second.
When any of the rules reports full load the server is considered to be running at its maximum and therefore no further client connections will be allowed.
All Citrix servers have to have a load evaluator assigned to it. When a new server is built it will have the Default load evaluator assigned. On its own this is generally pretty useless. It allows up to a 100 users to connect at any one time before reporting full load. If your servers can only handle a maximum of 40-50 users the servers will have stopped long before the load evaluator has done its job.
The advanced load evaluator on the other hand is very often all you need. The load maximums are set to sensible limits and the rules are ideal for most environments.
What Load Evaluators to use?
Deciding what evaluators to use can be a matter of trial and error to a certain extent. It’s the sort of thing that cannot be tested in a test environment because it would mean having to have 50 or so users logging on and using the system. I would recommend applying the advanced load evaluator on a server to see how it goes first of all. If you’re reaching the limits straight away you have a problem because the maximums are set quite high. For example the CPU is set to 90% utilisation. If you are regularly going over this then you probably need to look at adding extra servers or upgrading your hardware.
If you then want to add further rules you will need to create a new load evaluator and add them in yourself. You cannot change either the default or advanced load evaluators and only one load evaluator can be applied by server.
Applying Load Evaluators to Servers
If your hardware for all Citrix servers is the same it’s advisable to use the same server load evaluator throughout. If however your environment has a mix of hardware it makes sense to create a few load evaluators to reflect this. For example if you have one server that can handle 100 users and another that can handle 30, the server user load evaluator would be ideal in this scenario. Rather than users being assigned in a round robin scenario to each server this would mean a higher number being directed to the more powerful server.
How to create a New Load Evaluator
Click on Load Evaluators in the CMC, select new evaluator and add in the relevant rules and limits as you wish.
Assigning an Evaluator
Click on Load Evaluators in the CMC, select the usage reports tab, right click a server and select Load Manage Server. You then have the option of the two default evaluators plus any custom ones you have created.
Other Load Evaluators
Most of the time server load balancing is sufficient however in some situations it may be necessary to assign a load evaluator to an application. This can be achieved by simply right clicking an application in the CMC and selecting load manage application. You can then assign the relevant evaluator from the list as you did with the server evaluators.
Monitoring the Load Evaluators
Once you have load balanced your servers it is worth ensuring the servers are running safely within the predefined limits. The simple way to do this is to click on one of the servers in the CMC and click on the Load Manager Monitor tab. This shows you real time graphs for each of your load evaluators enabling you to quickly gauge if your servers are close to full load. The top of the chart represents full load.
If you need to be able to look back and review your results then you need to enable logging. To do this simply click on the Load Evaluators node in the CMC, click the Log tab and then click on the enable logging button. Entries will be made in this window as events occur from then on.
Not configuring the load evaluators
Of course many people get away with not assigning custom load evaluators at all. However lets take a scenario (which I’ve seen happen) where the air conditioning unit leaks onto a switch taking out 5 of the 10 servers in the farm. If only the default load evaluator is assigned new user sessions will now be connecting to the 5 remaining servers. If each server can only comfortably handle 40 users normally this is going to cause a problem. Shortly all the users just kicked off because the switch crashed will be reconnecting to the remaining 5 servers. This will soon go over the 40 limit and eventually the remaining 5 servers will stop leaving no one able to logon anywhere. If the servers stop and have to be rebooted then as soon as they come up the cycle of users logging on starts all over again. In this case simply having a server user load value of 40 would at least be allowing 200 users to logon not even being aware there’s been a problem.
Sure there may be some users who are getting a message about the server having reached full load and are unable to logon but half your farms just crashed so what more do you want:)
Points to Remember
You cannot change either the Default or Advanced built in load evaluators, instead you need to create a new evaluator yourself and add in the rules you want to utilise.
Do not set a load evaluator to the maximum. What’s the point in finding out you CPU is running at a 100%? It’s too late
Don’t set them too low. Clients will not be able to connect if they are.
Load evaluators can be assigned to a server, an application or both.
Configuring load evaluators does not mean that users will not notice if a server goes down. They will be kicked off need to reconnect to another server.
The load management feature is only available with the Advanced or Enterprise editions of Citrix Metaframe.