Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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.

share|improve this question
add comment

1 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

share|improve this answer
    
Process explorer just failed in the same way. Guess I'll try debug diag next time. –  JakeS Mar 5 '11 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 '11 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 '11 at 18:00
    
I just tried to do a full dump using the DebugDiag 1.2 beta. It also failed :( –  JakeS Mar 8 '11 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 '11 at 16:42
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.