分析高CPU使用率的内存转储显示对Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeWatcher

时间:2017-11-27 22:05:51

标签: .net multithreading cpu-usage enterprise-library-6

我正在分析内存转储以获得高CPU使用率,但我看到的是大多数失控线程显示0天的恒定时间0:05:48.921第二次和毫秒级更改位置并且大多数都调用Microsoft Practices EnterpriseLibrary ConfigurationChangeWatcher。我们正在使用MS Ent Lib 6进行日志记录。我不明白如何将所有这些与高CPU使用率相关联,任何人都可以帮助我分析转储并投入一些亮点。

儿童SP IP呼叫站点 000000581c2ddeb0 00007ffb58790b2a [GCFrame:000000581c2ddeb0] 000000581c2ddf80 00007ffb58790b2a [GCFrame:000000581c2ddf80] 000000581c2ddfb8 00007ffb58790b2a [HelperMethodFrame:000000581c2ddfb8] System.Threading.Monitor.Enter(System.Object) 000000581c2de0b0 00007ffaf0046f8a System.Threading.TimerQueueTimer.Change(UInt32,UInt32) 000000581c2de120 00007ffaf0ab0047 System.Timers.Timer.set_Enabled(布尔值) 000000581c2de180 00007ffaf1bf3edb Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeWatcher.pollTimer_Elapsed(System.Object,System.Timers.ElapsedEventArgs) 000000581c2de1d0 00007ffaf1bf3ea1 Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeWatcher.pollTimer_Elapsed(System.Object,System.Timers.ElapsedEventArgs) 000000581c2de220 00007ffaf1bf395f System.Timers.Timer.MyTimerCallback(System.Object) 000000581c2de2a0 00007ffaf049e7b2 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object,Boolean) 000000581c2de370 00007ffaf049cb67 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object,Boolean) 000000581c2de3a0 00007ffaf0a13c69 System.Threading.TimerQueueTimer.CallCallback() 000000581c2de400 00007ffaf0a1390a System.Threading.TimerQueueTimer.Fire() 000000581c2de450 00007ffaf0a1c079 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 000000581c2de4b0 00007ffaf0a19c48 System.Threading.ThreadPoolWorkQueue.Dispatch() 000000581c2de928 00007ffb4f3f4073 [DebuggerU2MCatchHandlerFrame:000000581c2de928] 000000581c2deab8 00007ffb4f3f4073 [ContextTransitionFrame:000000581c2deab8] 000000581c2decd8 00007ffb4f3f4073 [DebuggerU2MCatchHandlerFrame:000000581c2decd8]

儿童SP IP呼叫站点 000000581b73e1e8 00007ffb5879195a [InlinedCallFrame:000000581b73e1e8] Microsoft.Win32.Win32Native.GetFileAttributesEx(System.String,Int32,WIN32_FILE_ATTRIBUTE_DATA ByRef) 000000581b73e1e8 00007ffaefe84a3a [InlinedCallFrame:000000581b73e1e8] Microsoft.Win32.Win32Native.GetFileAttributesEx(System.String,Int32,WIN32_FILE_ATTRIBUTE_DATA ByRef) 000000581b73e1c0 00007ffaefe84a3a DomainNeutralILStubClass.IL_STUB_PInvoke(System.String,Int32,WIN32_FILE_ATTRIBUTE_DATA ByRef) 000000581b73e280 00007ffaefe83d92 System.IO.File.FillAttributeInfo(System.String,WIN32_FILE_ATTRIBUTE_DATA ByRef,Boolean,Boolean) 000000581b73e2f0 00007ffaefe83bc7 System.IO.File.InternalExists(System.String) 000000581b73e350 00007ffaefe81544 System.IO.File.InternalExistsHelper(System.String,Boolean) 000000581b73e390 00007ffaf0aafe51 Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeFileWatcher.GetCurrentLastWriteTime() 000000581b73e3c0 00007ffaf1bf3e18 Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeWatcher.pollTimer_Elapsed(System.Object,System.Timers.ElapsedEventArgs) 000000581b73e410 00007ffaf1bf395f System.Timers.Timer.MyTimerCallback(System.Object) 000000581b73e490 00007ffaf049e7b2 System.Threading.ExecutionContext.RunInternal(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object,Boolean) 000000581b73e560 00007ffaf049cb67 System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext,System.Threading.ContextCallback,System.Object,Boolean) 000000581b73e590 00007ffaf0a13c69 System.Threading.TimerQueueTimer.CallCallback() 000000581b73e5f0 00007ffaf0a1390a System.Threading.TimerQueueTimer.Fire() 000000581b73e640 00007ffaf0a1c079 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() 000000581b73e6a0 00007ffaf0a19c48 System.Threading.ThreadPoolWorkQueue.Dispatch() 000000581b73eb18 00007ffb4f3f4073 [DebuggerU2MCatchHandlerFrame:000000581b73eb18] 000000581b73eca8 00007ffb4f3f4073 [ContextTransitionFrame:000000581b73eca8] 000000581b73eec8 00007ffb4f3f4073 [DebuggerU2MCatchHandlerFrame:000000581b73eec8]

我通过调用堆栈看到了这种模式。

0 个答案:

没有答案