This is the third article in our series exploring comprehensive monitoring of XenApp (and more broadly, Citrix) environments. We’ve been using Citrix’s Operations/Monitoring Guide to produce some real-world options for keeping an eye on your environment.
Today we’re going to provide a pair of scripts that can offer a useful window into the sometimes overwhelming data that a Windows server can provide. As anyone who has done any sort of performance troubleshooting knows, Windows can provide to you such a mountain of data about all facets of system performance that it is often difficult to determine what to focus on. Thankfully, Citrix has come to our aid in this matter with a fairly comprehensive guide that we’ve been following in this series. I do hope Citrix plans to update this guide with the release of XenDesktop 7, but one part of their guide in particular still rings true and has been useful across a broad range of servers – even beyond Citrix and Terminal Services.
Citrix Generic Performance Monitor
The first monitor that we’re going to provide today is a Citrix Generic Performance monitor script. The white paper actually states that these recommendations apply to “XenApp, XenDesktop, and Provisioning Services implementations as well as Web Interface and SQL servers. The threshold values shown also apply to all kinds of systems.” This sensor essentially chains together a bunch of WMI calls to execute all at once, and also includes some threshold metrics to allow you to configure PRTG to let you know when things are going sideways.
You can get the full technical details on each of the calls from the white paper, if you are so inclined; this is what the sensor includes (in alphabetic order according to the metric):
- Disk Average Seconds Per Read
- Disk Average Seconds Per Transfer
- Disk Average Seconds Per Write
- Disk Queue Length (Current)
- Disk Time (Percent)
- Memory – Available Bytes
- Memory – Pages/sec
- Page File Percent Usage
- Processor Queue Length
- Processor Time (Percent)
For quite a few of these metrics, you will hope for return values of zero, or as close to zero as you can get. You might need to adjust some of the thresholds in this one for your particular environment but, in general, the defaults that are included in the script are good recommendations. You can, of course, pull all of these separately using PRTG’s built-in WMI calls, but since these are useful for nearly every type of server in your environment, it’s nice to be able to just drop this one sensor in and immediately get them all.
Citrix XenApp Performance Monitor
The second sensor we’re going to provide is very similar to the generic performance sensor from above, except the data that it pulls is largely specific to XenApp, and is provided by Citrix WMI providers rather than Microsoft providers. This sensor has proven capable on the last few versions of XenApp (6.5, 6.0, 5, and 4.5), but hasn’t yet been tested on XenDesktop 7 servers. When things are running smoothly, this sensor hopefully returns some exceedingly boring graphs (which you can see above), with nearly all of the values it queries being optimally zero. What it includes:
- Application Resolution Time
- Last Datastore Connection Failure
- Growth: Application Enumerations/sec
- Growth: Application Resolutions/sec
- Growth: Average License Check-Out Response
- Growth: Filtered Application Enumerations/sec
- Growth: Terminal Services Total Sessions
- Licensing: Check-Out Response Time
- Licensing: Last Server Connection Failure
- Number of busy XML threads
- Resolution Workitem Queue Ready Count
- Workitem Queue Ready Count
Web Interface Performance Monitor
One more for today. This is a very simple sensor for a very simple (and now deprecated) bit of software. The only two items that Citrix lists for monitoring:
- ASP.NET Requests Failed
- ASP.NET Requests Queued
…making this the least interesting graph of the three sensors, by far. It takes a pretty significant amount of load (or a badly-tuned system) for either of these to start showing data, but since both reflect one of the first interactions users will have with your environment, they’re no less important.
Monitoring Performance with PRTG
In our previous post in this series, we provided you with a Lockstep-developed custom sensor that can monitor and track licensing across your entire Citrix environment. These sensors today can be used against XenApp servers to ensure that your infrastructure stays fast and available. PRTG’s built-in tools can also help you monitor everything else involved, as well – the network, the storage, the virtual machine host servers – the list goes on. If you’re not already a PRTG user, you can download a trial to get started, and let us know if you would like some of our expertise to improve the visibility of your entire network.
You can download the sensors I’ve described above to try out in your own environment. We hope they are as useful to you as they’ve been to us.