ASP.NET and IIS Performance Troubleshooting Tools: FREB, Perfecto, and PerfView

If you have an ASP.NET application running on IIS 7 or IIS 7.5 that is experiencing intermittent delays, you have three powerful troubleshooting tools at your disposal that you might not have known about: FREB, Perfecto, and PerfView.

1) IIS Failed Request Tracing (FREB)
2) Jose Reyes’ ASP.NET Perfecto tool
3) Microsoft’s PerfView tool

1) Failed Request Tracing

Failed Request Tracing (sometimes called “FREB” from its formerly unwieldy name of “Failed Request Event Buffering”) gives you a lot of control over defining exactly which requests to IIS 7 or IIS 7.5 you want to consider “failed” -- and have only those requests traced.

For example, if you expect your application to respond within a second or two but it’s taking longer, you could set FREB to trace requests when it takes 4 or 5 seconds to respond. FREB produces a log file in .xml format that shows events and notifications from the modules that processed the request during its lifecycle, which is really helpful.

Here are some great resources that will help you learn more about Failed Request Tracing with IIS:

Troubleshooting Failed Requests Using Tracing in IIS 7 (IIS.net)

Troubleshooting a simple error message using FREB (IIS.net)

Making Failed Request Tracing More Approachable (Bill Staple’s Blog on IIS.net)

Failed Request Tracing with IIS 7 (codeguru.com)

2) ASP.NET Perfecto
Although FREB is a great resource, it has some drawbacks: it can generate a lot of unwanted data; it generates one file per request, with no easy way to know which file corresponds to which request; and it shows the duration for IIS events, but not for ASP.NET events like Page Load.

Jose Reyes’s ASP.NET Perfecto collects traces for ASP.NET requests from the Windows Performance Monitor and presents them in an easier to use way. It’s easy to set up and consists of three .xml files. For more information, and to download it, see Jose’s MSDN blog post ASP.NET Perfecto - Taking a quick peek at the performance of your ASP.NET app.

3) The Microsoft PerfView Tool
The Microsoft PerfView tool helps you identify CPU and memory performance issues. The tool is used by a number of teams internally at Microsoft. Some of its advantages are:

  • Non-invasive collection - suitable for use in live, production environments
  • Xcopy deployment - copy and run
  • Memory
       Support for very large heaps (gigabytes)
       Snapshot diffing
       Dump files (.dmp)
  • CPU Performance
       Support for managed, native, and mixed code
       Can read XPerf logs
       Profile diffing

For more information, and to download the PerfView tool, see the PerfView page on the Microsoft Download Center.

No Comments