Monitor AppPool Health Using the Windows Powershell Snap-in for IIS
Published May 19th, 2012 at 11:27 AM. by Joe Prochazka
Sometimes as an ASP.NET web developer you may wish to check on the performance of your application specifically when it comes to the performance of an app pool. The problem is there is no clear cut solution made easily available to do so. However one solution to monitoring your AppPools health can be to install the Windows Powershell Snap-in for IIS which you can download at http://www.iis.net/download/PowerShell. The following explains the process of getting this information using the IIS snap-in.
First you will want to read through this to get acquainted with the Windows Powershell Snap-in for IIS which will help you get the snap-in loaded. http://technet.microsoft.com/en-us/library/ee790599.aspx
Once you have the IIS Snap-in loaded you try and run the following making sure to replace ”DefaultAppPool” with the name of the AppPool you wish to find information on:
PS IIS:\> cd AppPools PS IIS:\AppPools> dir DefaultAppPool\WorkerProcesses
Once this command has been ran look for a number under Process Id that is of course your process ID for the AppPool in question. Run the next command replacing TheProcessID with the process ID from the above command.
get-process -id TheProcessID
The following is an explaination of what you will see as a result of running this command which was taken from http://msdn.microsoft.com/en-us/library/dd347630.aspx.
- Handles: The number of handles that the process has opened.
- NPM(K): The amount of non-paged memory that the process is using, in kilobytes.
- PM(K): The amount of pageable memory that the process is using, in kilobytes.
- WS(K): The size of the working set of the process, in kilobytes. The working set consists of the pages of memory that were recently referenced by the process.
- VM(M): The amount of virtual memory that the process is using, in megabytes. Virtual memory includes storage in the paging files on disk.
- CPU(s): The amount of processor time that the process has used on all processors, in seconds.
- ID: The process ID (PID) of the process.
- ProcessName: The name of the process.