Why Are My Citrix Apps Slow?

Picture this: some users report that one or more apps are sporadically sluggish.  Some users are remote, some are in your main office, so you dismiss the network as the culprit.  You research the issue and see that these all of these users are all accessing Server10.  You dive into your monitoring data for Server10 and see the following:

  • Memory is not overutilized and paging is minimal
  • CPU utilization is around 55%

Hmmmmm … the issue isn’t server resources, or is it?

More than once, I’ve found that this issue is actually CPU utilization, but you won’t know it based on looking at overall processor utilization?  How can that be?

Assuming that your XenApp server has at least two processors, the CPU utilization numbers are actually an average of all of the processors.  In this example, % Processor Utilization shows 55%.  That means that one processor could be pegged at or near 100% and the other could be at 10-15%. 

Why does this happen?  A few reasons:

  • A process “hugs” a processor and continues to execute against that particular processor, sometimes because of a process error.
  • An application is single-threaded, which means that it wasn’t written to take advantage of multiple processors. 

If all the apps are working well, CPU utilization across all processors should be approximately even.  It’s rare that CPU utilization across individual processors will be exactly the same, but they should be within a few percentage points of each other.  Typically, when a processor utilization imbalance occurs, Processor0 will be the one that is at or near 100%; however, that’s not always the case. 

These scenarios are more often the case with older applications and/or those that were originally destined to run on workstations.  In addition, “homegrown” apps are less likely to take full advantage of multiple processors.

To address potential CPU utilization issues, break out the % Processor Time counter based on the individual processor instances.  This is what you’ll typically see what you do that.  Notice that Processor0 and Processor1 vary slightly?  That’s normal. 

Whether you use Performance Monitor, Resource Manager, EdgeSight, or any other monitoring tool that looks at the standard monitoring counters, this is simple and may save you hours of troubleshooting, plus it enables you to look like a superhero (or superheroine!).


About Jo Harder

Started with virtualization in the days of WinFrame/MetaFrame. After over 11 years with Citrix, I'm having fun working with Rick Dehlinger and crew to help customers make virtualization mainstream. I can be reached at Jo.Harder@ClarosSystems.com.
This entry was posted in Uncategorized and tagged , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>