To diagonise a website's performance, I recently ran debug diag tool against a manual dump(CrashHang). Please find one of the results below from the tool for which I am concerned the most:
The following threads in w3wp.exe__<site_name>__PID__15332__Date__08_25_2011__Time_07_40_42PM__23__Manual Dump.dmp are
1.making a HttpWebRequest. 7.81% of threads blocked
2.is waiting on data to be returned from the database server. 4.69% of threads blocked.
3.making a call to Sleep API using the .net Library. 1.56% of threads blocked
Please find below the call stack and full call stack for a single tool report that I picked in random.
satajl
Member
3 Points
11 Posts
Help needed on a report generated by debug diag tool
Sep 06, 2011 05:08 AM|LINK
Hi,
To diagonise a website's performance, I recently ran debug diag tool against a manual dump(CrashHang). Please find one of the results below from the tool for which I am concerned the most:
The following threads in w3wp.exe__<site_name>__PID__15332__Date__08_25_2011__Time_07_40_42PM__23__Manual Dump.dmp are
1.making a HttpWebRequest. 7.81% of threads blocked
2.is waiting on data to be returned from the database server. 4.69% of threads blocked.
3.making a call to Sleep API using the .net Library. 1.56% of threads blocked
Please find below the call stack and full call stack for a single tool report that I picked in random.
.NET Call Stack
Function
System.Net.UnsafeNclNativeMethods+OSSOCK.recv(IntPtr, Byte*, Int32, System.Net.Sockets.SocketFlags)
System.Net.Sockets.Socket.Receive(Byte[], Int32, Int32, System.Net.Sockets.SocketFlags, System.Net.Sockets.SocketError ByRef)
System.Net.Sockets.Socket.Receive(Byte[], Int32, Int32, System.Net.Sockets.SocketFlags)
System.Net.Sockets.NetworkStream.Read(Byte[], Int32, Int32)
System.Net.FixedSizeReader.ReadPacket(Byte[], Int32, Int32)
System.Net.Security._SslStream.StartFrameHeader(Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)
System.Net.Security._SslStream.StartReading(Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)
System.Net.Security._SslStream.ProcessRead(Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)
System.Net.TlsStream.Read(Byte[], Int32, Int32)
System.Net.PooledStream.Read(Byte[], Int32, Int32)
System.Net.Connection.SyncRead(System.Net.HttpWebRequest, Boolean, Boolean)
System.Net.Connection.PollAndRead(System.Net.HttpWebRequest, Boolean)
System.Net.ConnectStream.PollAndRead(Boolean)
System.Net.HttpWebRequest.EndWriteHeaders(Boolean)
System.Net.HttpWebRequest.WriteHeadersCallback(System.Net.WebExceptionStatus, System.Net.ConnectStream, Boolean)
System.Net.ConnectStream.WriteHeaders(Boolean)
System.Net.HttpWebRequest.EndSubmitRequest()
System.Net.HttpWebRequest.SetRequestSubmitDone(System.Net.ConnectStream)
System.Net.Connection.CompleteStartRequest(Boolean, System.Net.HttpWebRequest, System.Net.TriState)
System.Net.Connection.SubmitRequest(System.Net.HttpWebRequest)
System.Net.ServicePoint.SubmitRequest(System.Net.HttpWebRequest, System.String)
System.Net.HttpWebRequest.SubmitRequest(System.Net.ServicePoint)
System.Net.HttpWebRequest.GetResponse()
System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(System.Net.WebRequest)
System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(System.Net.WebRequest)
System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(System.String, System.Object[])
<dll_name>.KCServices.URPWebService.URPService.UpdateDataStructureProperties(System.String, System.String, System.String)*** ERROR: Module load completed but symbols could not be loaded for <dll_name>.DLL
<dll_name>.ConsumerManager.UpdateDataStructureProperties(System.String, System.String, <dll_name>.DynamicPropertyList)
<dll_name_1>.KCProfileProvider.GetPropertyValues(System.Configuration.SettingsContext, System.Configuration.SettingsPropertyCollection)*** WARNING: Unable to verify checksum for <dll_name_1>.DLL
System.Configuration.SettingsBase.GetPropertiesFromProvider(System.Configuration.SettingsProvider)
System.Configuration.SettingsBase.GetPropertyValueByName(System.String)
System.Configuration.SettingsBase.get_Item(System.String)
System.Web.Profile.ProfileBase.GetInternal(System.String)
System.Web.Profile.ProfileBase.get_Item(System.String)
<dll_name_2>.KCProfileCore.GetProperty(System.String)
<dll_name_2>.Profile.KCProfileCore.get_StateprovinceCode()
<dll_name_3>.MasterPages.RewardsParticipatingProducts.get_ParticipatingProducts()
<dll_name_3>.MasterPages.RewardsParticipatingProducts.get_ProductsByType()
<dll_name_3>.MasterPages.RewardsParticipatingProducts.PopulatePagerControl()
<dll_name_3>.MasterPages.RewardsParticipatingProducts.Page_Load(System.Object, System.EventArgs)
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr, System.Object, System.Object, System.EventArgs)
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(System.Object, System.EventArgs)
System.Web.UI.Control.OnLoad(System.EventArgs)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain(Boolean, Boolean)
System.Web.UI.Page.ProcessRequest(Boolean, Boolean)
System.Web.UI.Page.ProcessRequest()
System.Web.UI.Page.ProcessRequestWithNoAssert(System.Web.HttpContext)
System.Web.UI.Page.ProcessRequest(System.Web.HttpContext)
ASP.content_participatingproducts_codes_aspx.ProcessRequest(System.Web.HttpContext)*** WARNING: Unable to verify checksum for App_Web_9fgnsde-.dll
System.Web.HttpApplication+CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
System.Web.HttpApplication.ExecuteStep(IExecutionStep, Boolean ByRef)
System.Web.HttpApplication+PipelineStepManager.ResumeSteps(System.Exception)
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest, System.Web.HttpContext)
System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)
System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr, System.Web.RequestNotificationStatus ByRef)
System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)
System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)
Full Call Stack
Function
ntdll!ZwWaitForSingleObject+15
mswsock!SockWaitForSingleObject+3a
mswsock!WSPRecv+2a7
ws2_32!recv+87
0x00c6a733
System.Net.Sockets.Socket.Receive(Byte[], Int32, Int32, System.Net.Sockets.SocketFlags, System.Net.Sockets.SocketError ByRef)
System.Net.Sockets.Socket.Receive(Byte[], Int32, Int32, System.Net.Sockets.SocketFlags)
System.Net.Sockets.NetworkStream.Read(Byte[], Int32, Int32)
System.Net.FixedSizeReader.ReadPacket(Byte[], Int32, Int32)
System.Net.Security._SslStream.StartFrameHeader(Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)
System.Net.Security._SslStream.StartReading(Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)
System.Net.Security._SslStream.ProcessRead(Byte[], Int32, Int32, System.Net.AsyncProtocolRequest)
System.Net.TlsStream.Read(Byte[], Int32, Int32)
System.Net.PooledStream.Read(Byte[], Int32, Int32)
System.Net.Connection.SyncRead(System.Net.HttpWebRequest, Boolean, Boolean)
System.Net.Connection.PollAndRead(System.Net.HttpWebRequest, Boolean)
System.Net.ConnectStream.PollAndRead(Boolean)
System.Net.HttpWebRequest.WriteHeadersCallback(System.Net.WebExceptionStatus, System.Net.ConnectStream, Boolean)
System.Net.ConnectStream.WriteHeaders(Boolean)
System.Net.HttpWebRequest.EndSubmitRequest()
System.Net.HttpWebRequest.SetRequestSubmitDone(System.Net.ConnectStream)
System.Net.Connection.CompleteStartRequest(Boolean, System.Net.HttpWebRequest, System.Net.TriState)
System.Net.Connection.SubmitRequest(System.Net.HttpWebRequest)
System.Net.ServicePoint.SubmitRequest(System.Net.HttpWebRequest, System.String)
System.Net.HttpWebRequest.SubmitRequest(System.Net.ServicePoint)
System.Net.HttpWebRequest.GetResponse()
System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(System.Net.WebRequest)
System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(System.Net.WebRequest)
System.Configuration.SettingsBase.GetPropertiesFromProvider(System.Configuration.SettingsProvider)
System.Configuration.SettingsBase.GetPropertyValueByName(System.String)
System.Configuration.SettingsBase.get_Item(System.String)
System.Web.Profile.ProfileBase.GetInternal(System.String)
System.Web.Profile.ProfileBase.get_Item(System.String)
System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr, System.Object, System.Object, System.EventArgs)
System.Web.Util.CalliEventHandlerDelegateProxy.Callback(System.Object, System.EventArgs)
System.Web.UI.Control.OnLoad(System.EventArgs)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain(Boolean, Boolean)
System.Web.UI.Page.ProcessRequest(Boolean, Boolean)
System.Web.UI.Page.ProcessRequest()
System.Web.UI.Page.ProcessRequestWithNoAssert(System.Web.HttpContext)
System.Web.UI.Page.ProcessRequest(System.Web.HttpContext)
System.Web.HttpApplication+CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
System.Web.HttpApplication.ExecuteStep(IExecutionStep, Boolean ByRef)
System.Web.HttpApplication+PipelineStepManager.ResumeSteps(System.Exception)
System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext, System.AsyncCallback)
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest, System.Web.HttpContext)
System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)
System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)
webengine!W3_MGD_HANDLER::ProcessNotification+59
webengine!W3_MGD_HANDLER::DoWork+235
webengine!RequestDoWork+2c3
webengine!CMgdEngHttpModule::OnExecuteRequestHandler+18
iiscore!NOTIFICATION_CONTEXT::RequestDoWork+128
iiscore!NOTIFICATION_CONTEXT::CallModulesInternal+305
iiscore!NOTIFICATION_CONTEXT::CallModules+28
iiscore!W3_CONTEXT::DoStateRequestExecuteHandler+36
iiscore!W3_CONTEXT::DoWork+d7
iiscore!W3_MAIN_CONTEXT::ContinueNotificationLoop+1f
iiscore!W3_MAIN_CONTEXT::ProcessIndicateCompletion+1f
iiscore!W3_CONTEXT::IndicateCompletion+75
webengine!W3_MGD_HANDLER::IndicateCompletion+3b
webengine!MgdIndicateCompletion+22
0x00ed3789
System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)
System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)
mscorwks!UM2MThunk_WrapperHelper+1f
mscorwks!UM2MThunk_WrapperWorker+60
mscorwks!UM2MThunk_Wrapper+14
mscorwks!Thread::DoADCallBack+da
mscorwks!UM2MDoADCallBack+7c
0x00f72a02
webengine!W3_MGD_HANDLER::ProcessNotification+59
webengine!ProcessNotificationCallback+2d
mscorwks!UnManagedPerAppDomainTPCount::DispatchWorkItem+9a
mscorwks!ThreadpoolMgr::ExecuteWorkRequest+af
mscorwks!ThreadpoolMgr::WorkerThreadStart+20b
mscorwks!Thread::intermediateThreadProc+49
kernel32!BaseThreadInitThunk+e
ntdll!__RtlUserThreadStart+70
ntdll!_RtlUserThreadStart+1b
Socket properties:
Source Port 65234
Destination IP 205.203.65.89
Destination Port 443
Could you please guide me on how to get this issue solved as I am not able to foresee any direction in which I can proceed on this issue.
Otomii Lu - ...
Contributor
3065 Points
490 Posts
Microsoft
Re: Help needed on a report generated by debug diag tool
Sep 08, 2011 08:27 AM|LINK
Hi,
According to your description, I cannot reach the solution directly.
I would like to suggest you to refer the links below for some information about Debug Diagnostic Tool:
http://msdn.microsoft.com/en-us/library/ff420662.aspx
http://blogs.msdn.com/b/debugdiag/archive/2006/06/13/629624.aspx
Hope it can help.
satajl
Member
3 Points
11 Posts
Re: Help needed on a report generated by debug diag tool
Dec 07, 2012 08:44 PM|LINK
Thanks...I finally used LogParser to do this.