2

I'm having a problem with an IIS application that occasionally spikes up in CPU usage, and am trying to use procdump to get a memory dump for examination. I'm running "procdump.exe -64 -mA 9999" where 9999 is the pid of the process. But every time I do it, I get an error:

Only part of a ReadProcessMemory or WriteProcessMemory request was completed.

Doing this also recycles the apppool, relieving the CPU spike, so I can't keep trying until I get it right.

Does anyone know what is going wrong?

EDIT WITH MORE INFO: So far I've failed to generate a debug dump no matter what tool I try. All of them seem to generate the same sort of error. This is 2008 R2 Datacenter running IIS7 with a 64-bit asp.net web site.

My best guess is that something is getting blocked, causing some requests to remain open in IIS and gradually using up resources. If I monitor the worker process using the IIS Manager and view all requests, throughout the day I'll start to see some requests that "stick" and run forever. Some of these are for static files. Some are for aspx pages. I cannot see any "common" reason for them.

Every once in a while the app pool starts taking up 100% CPU and the only remedy is to kill it.

2 Answers 2

1

I'm not sure what is causing that message, but I know you can create a dump using SysInternals' Process Explorer. While in Process Explorer, right-click on w3wp.exe and select Create Dump > Create Full Dump. It took about 15 seconds on my Windows 2003 x64 server to create a 350 MB dump file. This also did not restart the application pool on my server.

Another option is the Debug Diag tool from Microsoft. This is the ultimate in capturing process dumps, based on many different criteria.

https://www.microsoft.com/downloads/en/details.aspx?FamilyID=28bd5941-c458-46f1-b24d-f60151d875a3&displaylang=en

5
  • Process explorer just failed in the same way. Guess I'll try debug diag next time.
    – JakeS
    Mar 5, 2011 at 0:58
  • Debugdiag won't work for me either. It doesn't work for server2008 + IIS7 in 64-bit mode. This is killing me.
    – JakeS
    Mar 7, 2011 at 17:10
  • I think the next version (1.2) will have the capability. Have you enabled Health Monitoring? If not, you should do that, it will log the reason that the app domain shutdown is occurring. You can edit the master web.config in the appropriate .NET Framework folder (32 or 64 bit). Tess Ferrandez has an example here: blogs.msdn.com/b/tess/archive/2006/08/02/…
    – Greg Askew
    Mar 7, 2011 at 18:00
  • I just tried to do a full dump using the DebugDiag 1.2 beta. It also failed :(
    – JakeS
    Mar 8, 2011 at 15:54
  • I suspect the failure is actually due to the app domain shutting down. Did you enable Health Monitoring for shutdown events? That should record the shutdown reason in the Windows application event log.
    – Greg Askew
    Mar 8, 2011 at 16:42
0

I had a similar issue, though for a windows service. Turned out my issue was that it was a 32bit process running on a 64bit machine, so running procdump rather than procdump64 was the solution for me.

Have you tried both procdump and procdump64?

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .