{"id":25,"date":"2008-07-09T22:10:15","date_gmt":"2008-07-09T13:10:15","guid":{"rendered":"http:\/\/www.jhouseconsulting.com\/index.php\/jhouseconsulting\/2008\/07\/09\/citrix-load-evaluators\/"},"modified":"2008-12-21T21:53:42","modified_gmt":"2008-12-21T13:53:42","slug":"citrix-load-evaluators","status":"publish","type":"post","link":"https:\/\/www.jhouseconsulting.com\/jhouseconsulting\/2008\/07\/09\/citrix-load-evaluators-25","title":{"rendered":"Citrix Load Evaluators"},"content":{"rendered":"<p><a title=\"loadindex1.PNG\" rel=\"attachment wp-att-26\" href=\"http:\/\/www.jhouseconsulting.com\/index.php\/jhouseconsulting\/2008\/07\/09\/citrix-load-evaluators\/attachment\/26\/\"><\/a><a title=\"loadindex1.PNG\" rel=\"attachment wp-att-26\" href=\"http:\/\/www.jhouseconsulting.com\/index.php\/jhouseconsulting\/2008\/07\/09\/citrix-load-evaluators\/attachment\/26\/\"><\/a>It has always been my opinion that the CPU Utilisation and Page Swaps rules are highly variable, and therefore do not often represent the real load of a server. CPU Utilisation can often be too erratic to provide consistent load balancing. Now days you have the CPU Optimisation feature, or a 3rd Party management app controlling this. Once you&#8217;ve base-lined your systems, then a custom evaluator with the Server User Load and Memory Usage rule is about the best to receive a consistent balance across all servers.<!--more--><\/p>\n<p>The following information about how the load index is determined came from a friend at Citrix.<\/p>\n<p>When calculating the value for each rule, perfmon data is taken every 15 seconds and then this is averaged over a five minute period for each rule configured for the load evaluator. The rules are evaluated every time a user connects, disconnects, or between 5 and 30 seconds. Using &#8220;qfarm \/load&#8221; from a command prompt on a Citrix server will display the current load index of the server. A figure of 10,000 means full load. When it evaluates the rule it uses the last 20 samples (5 minutes \/ 15 seconds) of perfmon data collected. Therefore a server physically running at full load may take up to 5 minutes to register a load index of 10,000 as see by the screenshot below.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/www.jhouseconsulting.com\/jhouseconsulting\/wp-content\/uploads\/2008\/07\/loadindex1.PNG\" border=\"0\" alt=\"\" width=\"706\" height=\"432\" \/>\u00a0<\/p>\n<p>A common misconception is that the evaluator&#8217;s highest utilised rule determines the load index. However this is not the case. When two servers have the advanced or a custom load evaluator with more than one rule, the average of the other rules are taken into account when calculating the load index. These &#8220;secondary&#8221; rules effectively become a tie breaker when two or more servers have equally high load numbers. To calculate the load index when multiple rules are used in a load evaluator the below formula is used:<\/p>\n<p style=\"padding-left: 30px;\">LoadIndex = HigestLoadRule + (AverageOfOtherLoadRules * .1)<\/p>\n<p>Take for example the following scenario for <strong>ctxsvr1<\/strong> and <strong>ctxsvr2<\/strong>:<\/p>\n<p style=\"padding-left: 30px;\"><strong>ctxsvr1<\/strong> has a Custom Load Evaluator which contains Load Rules for: CPU usage, Memory Usage, Server User Load.\u00a0The following\u00a0is the mapping from Load Rule -&gt; Load\u00a0Index for the load evaluator:<br \/>\nCPU usage: 50% -&gt; 5000<br \/>\nMemory Usage: 10% -&gt; 1000<br \/>\nServer User Load: 3 sessions -&gt; 50<\/p>\n<p style=\"padding-left: 30px;\"><strong>ctxsvr2<\/strong> has a custom Load Evaluator which contains Load Rules for: CPU usage, Memory Usage, Server User Load. The following is\u00a0the mapping from Load Rule -&gt; Load Index for the load evaluator:<br \/>\nCPU usage: 50% -&gt; 5000<br \/>\nMemory Usage: 20% -&gt; 2000<br \/>\nServer User Load: 6 sessions -&gt; 100<br \/>\nSo in this case the load index is calculated as follows:<\/p>\n<p style=\"padding-left: 30px;\"><strong>ctxsvr1<\/strong>: 5000 + (1000 + 50)\/2*.1) = 5052<br \/>\n<strong>ctxsvr2<\/strong>: 5000 + (2000 + 100)\/2*.1 = 5150<\/p>\n<p><em>Therefore user sessions will be directed to ctxsvr1 due to the slightly lower memory and user load.<\/em><\/p>\n<p>And don&#8217;t forget to set the load bias to counter &#8220;the black hole effect&#8221;. Therefore with XenApp 4.5 and above you should also add the Load Throttling rule to your custom Load Evaluator. This is explained in an article written by Brian Madden called &#8220;<a href=\"http:\/\/www.brianmadden.com\/content\/article\/Understanding-the-new-logon-throttling-load-evaluator-options-in-Citrix-Presentation-Server-45\" target=\"_blank\">Understanding the new logon throttling load evaluator options in Citrix Presentation Server 4.5<\/a>&#8220;.<\/p>\n<p>All that aside, personally, I just start off using the Default load evaluator, or a custom evaluator with the Server User Load and Load Throttling rules only. And then take it from there.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>It has always been my opinion that the CPU Utilisation and Page Swaps rules are highly variable, and therefore do not often represent the real load of a server. CPU Utilisation can often be too erratic to provide consistent load balancing. Now days you have the CPU Optimisation feature, or a 3rd Party management app &#8230; <a title=\"Citrix Load Evaluators\" class=\"read-more\" href=\"https:\/\/www.jhouseconsulting.com\/jhouseconsulting\/2008\/07\/09\/citrix-load-evaluators-25\" aria-label=\"Read more about Citrix Load Evaluators\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[38],"tags":[416,125,417],"class_list":["post-25","post","type-post","status-publish","format-standard","hentry","category-xenapp","tag-citrix","tag-load-evaluators","tag-xenapp"],"aioseo_notices":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/www.jhouseconsulting.com\/jhouseconsulting\/wp-json\/wp\/v2\/posts\/25","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jhouseconsulting.com\/jhouseconsulting\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jhouseconsulting.com\/jhouseconsulting\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jhouseconsulting.com\/jhouseconsulting\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jhouseconsulting.com\/jhouseconsulting\/wp-json\/wp\/v2\/comments?post=25"}],"version-history":[{"count":7,"href":"https:\/\/www.jhouseconsulting.com\/jhouseconsulting\/wp-json\/wp\/v2\/posts\/25\/revisions"}],"predecessor-version":[{"id":257,"href":"https:\/\/www.jhouseconsulting.com\/jhouseconsulting\/wp-json\/wp\/v2\/posts\/25\/revisions\/257"}],"wp:attachment":[{"href":"https:\/\/www.jhouseconsulting.com\/jhouseconsulting\/wp-json\/wp\/v2\/media?parent=25"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jhouseconsulting.com\/jhouseconsulting\/wp-json\/wp\/v2\/categories?post=25"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jhouseconsulting.com\/jhouseconsulting\/wp-json\/wp\/v2\/tags?post=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}