Friday, April 17, 2009

More on Citrix Load Evaluators


Well, most of feed back I received from other industry players confirmed my initial suspicions... counters based on Windows Perf Counters where Windows is a VM are not reliable. A local area architect, who is not married to any one technology, summed it up nicely:
"You have touched on something that is inherent to the virtual world: the performance counters are always wrong. Exactly how wrong, that is debatable. In the past, I have used empirical numbers to control load. That means keying off of something like user count, memory utilization, or page swaps. It isn't an exact science, but some testing should give you the right mix."

Based on my research, combined with various feedback points, I set the following:
  • Load Throttling – High
  • Server User Load – Report Full Load at 45 Users45 Users
This is really just a tweak of the DEFAULT load evaluator, but works for what I am after.

Now, you may ask, “Why 45?” Well, our physical servers typically run with load values ranging from 6200 to 7400 based off Memory and CPU Utilization. This generally supports 65-70 sessions. When creating our specs for the VMs, we targeted 30 users, but the actual running values have gone as high as 55 before completely tanking.

So, if the average load eval is around 7000, 30 users (our target) is 70% of 43… round up to 45. This would keep our VMs running at 30 users in a comparative fashion to the physicals, while allowing a 50% cushion for spikes.

Using vCENTER to monitor vCPU and vRAM performance, and WMI/SNMP to monitor/trend the load value and # terminal server session has shown positive results. Prior to the load evaluator change, the VMs would peg the vCPU and become sluggish or completely unresponsive, user sessions would climb as high as 55. Since the change, the vCPU will occasionally spike to 100%, but is averaging around 75%. Users sessions are averaging around 32 users. Right on target.

As more VMs are added, and the load is distributed more evenly, that will be the true test. My next goal is to start collecting vCenter stats using PowerShell and writing the results to a SQL database. I will use that to correlate and trend the actual values for capacity planning.

I will also soon be building out a full ESX Server hosting only XenApp workloads. This will let me see how many of my optimized VMs I can efficiently run on one host. This number should range between 10 and 15, I'm anticipating a comfort level around 12, but time will tell. This should net me 300 to 350 users per HOST.

No comments:

Post a Comment