Procdump on w3wp.exe: Only part of a ReadProcessMemory or WriteProcessMemory request was completed

cpu-usagedumpiis-7

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.

Best Answer

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