Friday, April 10, 2009

Citrix Load Evaluator Rules in a VM


I mentioned in my previous post that one of my VMs was pegging at 100% of the vCPU, but the Windows Task Manager was showing only spikes (although a lot of them), and my Citrix load value for that server was in the 7200 range. Of course, the system was crawling and unusable for customers.

This highlights a concern I have had for some time... how to measure the load of Citrix VMs using the traditional load evaluators. The reason for the concern is that most of the criteria available is based on Windows coutners... and it is commonly know that GuestOS counters are inaccurate in a VM. From VMWare:

The problems seen as a result of usage of traditional in-guest performance measurements come from three areas:

  1. They are unaware of work being performance by the virtualization software, they will not have complete information on the resources being used by the virtualization software. This includes memory management, scheduling, and other support processes like the service console in ESX.
  2. The way in which guest OSes account time is different and ineffective in a virtual machine.
  3. Their visibility into available CPU resources is based on the fraction of the CPU that they have been provided by the virtualization software
I currently use a traditional 80/20 Evaluator (80% or more = Full Load, 20% or less = No Load) for both RAM and CPU. However, in a VM, these are virtualized, so this count CANNOT be accurate. That is an inherent flaw in the system. It also explains why my servers which are scaled to handle around 30 or so users are running as high as 55 users. I would expect some variance, maybe 20-25%, but 80% does not seem right.

I think the fault lies within the flawed measurement. The only counter that would be worthwhile is the # of connected users... but that brings back a flaw from older monitoring that only measures users and not activity.

So, which flawed system to use? Next week, I plan to implement a # USERS based load evaluator, then use ESX TOP and vCENTER to monitor the true CPU and MEMORY Utilization against the actual number of users to find the sweetspot. I think I will set the FULL LOAD at 40, so an 80% load will be 30 users, which is my target, but allowing enough cushion for more users in a pinch.

If you are running Citrix in a ESX environment, I'd love to hear form you on what you use for load evaluation and resource monitoring.

No comments:

Post a Comment