Preface:
I hope you may have enjoyed the first part of this series “Performance Monitoring of ASP.Net Application”. Now as we have got basic information about the performance monitoring of the ASP.Net application using performance counters, you may have found the problamatic areas of application and now it is time to dig more into the application behavior to resolve the performance issue.
To resolve performance issue, mostly it is required to find out the area which is the origin of performance issue and to achieve this different third party or free tools are available in the market based on the technology, framework and infrastrcture of the application. As this is one book full topic, we have narrow down our concentration only for ASP.Net Application performance monitoring and we will describe about most popular and frequently used tools for performance monitoring of ASP.Net applciation.
As ASP.Net is baby of Microsoft – who is major on different user wanted OS, there are many native tools available for ASP.Net application monitoring on windows platform thus windows servers. We have identified around 12+ such tools which are mostly used for initial and advanced debugging or monitoring individually or in group. And each tool itself can accomodate one full chapter information, we will just list out the tools and brief information of each tool.
The .Net tracing should be enabled for most of the tools for debugging of ASP.Net application, so we will give brief information about .Net tracing before the tools list.
.Net Tracing
The tracing can be enabled at different level as below:
- Application level tracing — Enable by setting enable=true for trace section under system.web
- Page level tracing — Enable by setting trace=true in page directive
Apart from this we can write details to trace log from the code as well whenever required.
One can read the trace information by opening trace.axd from server using web browser.
ASP.Net Application Performance Monitoring Tools
There are some tools which are described separately eventhough it’s containing SDK or Toolkit described here based on importance.
Tool Name | Use |
LogParser | Log parser is a powerful, versatile tool that provides universal query access to text-based data such as log files, XML files and CSV files, as well as key data sources on the Windows ® operating system such as the Event Log, the Registry, the file system, and Active Directory ®. |
DebugView | This is an application that lets you monitor debug output on your local system, or any computer on the network that you can reach via TCP/IP. It is capable of displaying both kernel-mode and Win32 debug output, so you don’t need a debugger to catch the debug output your applications or device drivers generate, nor do you need to modify your applications or drivers to use non-standard debug output APIs. |
CLR Debugger | This tool provides debugging services with a graphical interface to help application developers find and fix bugs in programs that target the common language runtime. |
Windows SDK (included Microsoft Windows Performance Toolkit) | The included Microsoft Windows Performance Toolkit designed for analysis of a wide range of performance problems including application start times, boot issues, deferred procedure calls and interrupt activity (DPCs and ISRs), system responsiveness issues, application resource usage, and interrupt storms. It has tools like XPerf, XPerfview, Xbootmgr, WinDBG, KD, CDB, NTSD, MDBG etc. |
WinDbg + Psscor4 | Psscor4 can help you diagnose high-memory issues, high-CPU issues, crashes, hangs and many other problems that might occur in a .NET application; in scenarios involving live processes or dump files. |
DebugDiag | This is designed to assist in troubleshooting issues such as hangs, slow performance, memory leaks or fragmentation, and crashes in any user-mode process. The tool includes additional debugging scripts focused on Internet Information Services (IIS) applications, web data access components, COM+ and related Microsoft technologies. |
IIS Diagnostics Toolkit | is a compiled set of tools aimed at reducing the overall time to resolve problems with Internet Information Services (IIS) products.-Authentication and Access Control Diagnostics 1.0-SSL Diagnostics 1.1-SMTP Diagnostics 1.0-Log Parser 2.2
-Trace Diagnostics 1.0 -WFetch 1.4 -Debug Diagnostics 1.0 |
ADPlus.vbs | ADPlus (adplus.vbs), also known as Autodump+, is a console-based Microsoft Visual Basic script. This tool automates the CDB debugger to produce memory dumps and log files that contain debug output from one or more processes. |
Health Monitoring | ASP.NET version 2.0 health monitoring supports many standard events that you can use to monitor the health of your application. Examples of security related events that are automatically generated include logon failures and successes when using the ASP.NET membership system, attempts to tamper with or reuse forms authentication tickets, and infrastructure events such as disk access failures. This How To explains how to create custom events that use the same underlying infrastructure and raise them in your code to supplement the system-defined events. |
WinDBG + SOS | The SOS Debugging Extension (SOS.dll) helps you debug managed programs in the WinDbg.exe debugger and in Visual Studio by providing information about the internal common language runtime (CLR) environment. This tool requires your project to have unmanaged debugging enabled. You can also use the SOS Debugging Extension with the Windows debugger (WinDbg.exe). |
MDbg | The NET Framework Command-Line Debugger helps tools vendors and application developers find and fix bugs in programs that target the .NET Framework common language runtime. This tool uses the runtime debugging API to provide debugging services. You can use MDbg.exe to debug only managed code; there is no support for debugging unmanaged code. |
CLR Profiler | CLR Profiler enables you to look at the managed heap of a process and investigate the behavior of the garbage collector. Using the various views in the tool, you can obtain useful information about the execution, allocation, and memory consumption of your application.CLR Profiler is not a starting point for analyzing problems. Rather, it helps you identify and isolate problematic code and track down memory leaks. Using CLR Profiler, you can identify code that allocates too much memory, causes too many garbage collections, and holds on to memory for too long. |
Conclusion:
I am sure that the above list contains most of the and frequently used free tools. There are world class third party tools available in market but this post will help in you for decision making about the tools etc. Enjoy exploring the tools and let me know your feedback about the tools and queries if you have any.
Thanks.