This article will detail the action plan you can implement to create a rule in Debug Diagnostic 1.2 to automate a dump when you are facing a huge memory consumption generated by some unmanaged code inside a process owned by IIS (in example a "W3WP.exe" process).
!!! Warning !!! A dump in "Memory Leak" mode implies the load of a DLL named "Leaktrack.dll" in the "W3WP.exe" process. This DLL will save every memory allocation/liberation and can impact application performance and in the same way impact server performance.
!!! Warning 2 !!! This rule will be valid for a unique instance of a process. This means if the process is restarted (thus his Process ID has changed), the rule will not be active anymore.
- Debug Diagnostic 1.2 can be download at the following URL: http://www.microsoft.com/download/en/details.aspx?id=26798
- Once the tool has been installed and executed on the IIS server, the wizard "Select Rule Type" loads
- Choose "Native (non-.NET) Memory and Handle Leak", and then click on "Next >"
Select the "W3WP.exe" process facing the memory consumption issue, then click on "Next >"
- Configure the "Configure Leak Rule" as followed:
If you are facing a private bytes memory consumption issue:
- Click on "Configure…" and set "Configure userdumps for Leak Rule" parameters as followed:
If you are facing a virtual memory consumption issue:
Click on "Configure…" and set "Configure userdumps for Leak Rule" parameters as followed:
Click on "Save & Close", then click on "Next >"
Choose a name and a location for dumps file, then click on "Next >"
- Setting those dumps on another disk than C:\ is possible
Please check you have enough available space disk as the dump size will be equal to the memory consumed by the process you are monitoring
In the window "Rule Completed", select "Activate the rule now", and then click on "Finish"
- The rule is now configured and ready to generate dumps
Check the status is "Active"
- If it's not, The "DbgSvc" service is surely not started
- You can go in "Administrative Tools > Services" and start it
- When a dump will be generated, you'll see the column "UserDump Count" being incremented
The dumps are located by default in "C:\Program Files\DebugDiag\Logs\Crash rule for all IIS_COM+ related processes" or in "C:\Program Files\DebugDiag\Logs\Rule_Name".
We hope this article will help you out.
See you soon.
Sylvain Lecerf and the French IIS Microsoft Support Team