Carl Stalhood

Wednesday 27 July 2016

All about Xenapp Load evaluator

Load Evaluator Summary
A fresh XenApp 6.5  installation comes with 2 preconfigured  load evaluators supplied by Citrix:
  • Default – XenApp assigns the Default load evaluator to each server after you add your license to the server farm. It contains two rules:
    • Server User, which reports a full load when 100 users log on to the attached server
    • Load Throttling, which specifies the impact that logging on has on load and limits the number of concurrent connection attempts the server is expected to handle.
  • Advanced – This load evaluator contains four rules
    • CPU Utilization Load
    • Memory Usage
    • Page Swaps
    • Load Throttling
Both built-in evaluators have some downsides and often a new custom load evaluator is created. I would say more – if IT department in the organization actively monitor existing XenApp environment, a customized advanced load evaluators are the must.
Working with Load Evaluators
To access the load evaluators in XenApp, you select the Load Evaluators node in the left pane of the AppCenter. The following tabs are displayed:

  • Load Evaluators displays all the load evaluators created for the farm in a list. Beneath this list, the Current Settings tab displays at-a-glance the state of all the available load evaluator rules.
  • Usage by Application displays the load evaluators that are attached to the farm’s published applications.
  • Usage by Server displays the load evaluators that are attached to each server in the farm.
When using load evaluators, keep in mind the following:
  • You cannot modify or delete any of the built-in evaluators.
  • Each server or application participating in load management can have only one load evaluator assigned.
  • Load evaluator is assigned to servers via Group Policy.
  • To assign load evaluator to individual applications on the server follow the manual process:
 Custom Load Evaluator
As it was mentioned above builin-in evaluators have some downsides and in most cases load evaluator with custom rules is required. Every environment, application and every workload is different, so whichever load evaluator is implemented may vary, but they should be customized and monitored. To efectivly monitor your environment you have to create custom load evaluator. Based on my experience the best is the combination of the rules User Load, Memory Usage, CPU Utilization and Load Throttling – the same set of rules as advanced load evaluator but the values for each rule should be determined by performance tests. Because CPU Utilization and Memory Usage have a dynamic character and may be specific to installed/used application those rules will be used when the utilization is pretty high. See the example of custom load evaluator below.


How to…apply Load Evaluator with Citrix XenApp 6.5


One of the significant improvements when migrating for XenApp 5.0 to XenApp 6.5 is the retirement of the old Advanced Settings console.
Now at last there is one console for all XenApp configuration.
It turns out creating and editing Load Evaluators is straight forward enough, but applying them is quite different. You can no longer simply apply the appropriate Load Evaluator to the server as before, now they are applied via Citrix policy.
Therefore you need to create a new Computer Policy and edit the Server Settings to select the Load Evaluator Name.
I’d recommend filtering the policy by Worker Groups, not servers. That way instead of managing individual servers all you need to do is add or remove the server from the Worker Group.
1. Create the new policy

2. Edit the Load Evaluator setting and select the appropriate LE

3. Filter as appropriate to apply to set server(s)


To assign a load evaluator to a server
  1. Create a new Computer policy or select an existing Computer policy you want to modify. Depending on the console you use to manage Citrix policies:
    • From the AppCenter, select the Policies node and then select the Computer tab.
    • From the Group Policy Management Editor, select Computer Configuration > Policies > Citrix Policies.
  2. From the settings list, locate the Load evaluator name policy setting and click Add.
  3. Select a load evaluator from the drop-down list and then click OK.
  4. Add the Worker Group filter to the policy and specify the worker group containing the servers to which you want to assign the load evaluator.
To assign a load evaluator to a published application
  1. From the AppCenter, select the Applications node in the left pane.
  2. Select the published application to which you want to attach a load evaluator.
  3. From the Actions pane, select Other Tasks > Attach application to load evaluator.
  4. On the Assign Load Evaluator dialog box, select the load evaluator to attach.
XenApp 6.5 load values explained
The load evaluator is a thread in the IMA Service on a XenApp Server that calculates the load index for that server. The load index is an integer value from 0  to 10,000 that represents how busy is XenApp server. A value of zero represents no load, while a value of  10,000 indicates the particular server is fully loaded and is not accepting any new connections.
To dispaly the current load on the server, administrator can run the command qfarm /load or query farm /load. Load vaules as reported by qfarm utility:
0 to 9998   This is the normal range for Load Manager.
99999          No load evaluator is configured.
10000        Load is at 100 percent (full load).
20000       The AppCenter console contains an incorrect server edition or a license mismatch.
99990        Results when a custom administrator with restricted rights runs the following QFARM commands:
  • QFARM SERVER /APP
  • QFARM /APP
  • QFARM /APP <appname> The QFARM command may not return any results when a custom administrator runs the following queries: QFARM /DISC
  • QFARM /LOAD
  • QFARM /ZONELOAD
How the server load is calculated  ?
The current load is a result of the calculations and sum of the values of all the rules in each and every load evaluator which applies to the server. The base algorithm for establishing actual load is: Highest_Load + (Average_Other_Loads * .1)
One important factor to understand is once any single rule reaches its maximum value, the load value for that server becomes 10,000, effectively removing the individual server from contention for new sessions. Individual servers continuously update the respective zone data collector with their current score every 15 seconds under normal conditions, or after each and every logon or logoff of a user session.


No comments:

Post a Comment