wcf 응용 프로그램에 대한 메모리 문제가 있습니다. perfview를 사용하여 메모리를 파고 들었습니다. 기본 스냅 샷을 얻은 다음 메모리가 많은 시점의 스냅 샷을 얻었습니다. 나는 그들을 diffed하고 2,921 메가 바이트에서 미전도 메모리를 볼 데이터를보고. 내 이해는 미전도 된 메모리가 GC가 될 준비가되었음을 의미합니다. 16 시간이 넘었고 도달 할 수없는 기억이 계속 올라갑니다.PerfView에 연결할 수없는 메모리
GC가 도달 할 수없는 메모리를 수집하지 못하게하는 원인은 무엇입니까?
UPDATE 나는 서비스가 상당한 메모리를 사용하면 종료 자 큐의 덤프를 얻을 수 있었다. 이 보고서에서 정확히 무엇을 찾고 있습니까? 아니면 다른 windbg/sos/sosex 명령을 실행해야합니까?
0:037> !finalizequeue
SyncBlocks to be cleaned up: 0
Free-Threaded Interfaces to be released: 0
MTA Interfaces to be released: 0
STA Interfaces to be released: 0
----------------------------------
------------------------------
Heap 0
generation 0 has 464 finalizable objects (0000000033877190->0000000033878010)
generation 1 has 52 finalizable objects (0000000033876ff0->0000000033877190)
generation 2 has 19958 finalizable objects (0000000033850040->0000000033876ff0)
Ready for finalization 228791 objects (0000000033878010->0000000033a36dc8)
------------------------------
Heap 1
generation 0 has 1508 finalizable objects (000000002ee2e168->000000002ee31088)
generation 1 has 91 finalizable objects (000000002ee2de90->000000002ee2e168)
generation 2 has 23498 finalizable objects (000000002ee00040->000000002ee2de90)
Ready for finalization 249421 objects (000000002ee31088->000000002f0182f0)
------------------------------
Heap 2
generation 0 has 66 finalizable objects (00000000292660d0->00000000292662e0)
generation 1 has 63 finalizable objects (0000000029265ed8->00000000292660d0)
generation 2 has 19411 finalizable objects (0000000029240040->0000000029265ed8)
Ready for finalization 238531 objects (00000000292662e0->00000000294380f8)
------------------------------
Heap 3
generation 0 has 510 finalizable objects (0000000034e470d8->0000000034e480c8)
generation 1 has 77 finalizable objects (0000000034e46e70->0000000034e470d8)
generation 2 has 19910 finalizable objects (0000000034e20040->0000000034e46e70)
Ready for finalization 226933 objects (0000000034e480c8->0000000035003470)
Statistics for all finalizable objects (including all objects ready for finalization):
MT Count TotalSize Class Name
000007fe9c64aba8 1 24 System.Threading.OverlappedDataCache
000007fe9af40ea0 1 24 System.Web.Configuration.ImpersonateTokenRef
000007fea03a8640 1 32 System.IO.Compression.ZLibNative+SafeLibraryHandle
000007fe9dd14820 1 32 Microsoft.Win32.SafeHandles.SafeCspHandle
000007fe9d302a50 1 32 Microsoft.Win32.SafeHandles.SafePEFileHandle
000007fe9cf161a8 1 32 Bid+AutoInit
000007fe9cbead60 1 32 Microsoft.Win32.SafeHandles.SafePerfProviderHandle
000007fe9c69a200 1 32 System.Net.SafeLocalFree
000007fe9c649080 1 32 System.ServiceModel.Channels.PipeHandle
000007fe9c62ad18 1 32 System.Net.SafeInternetHandle
000007fe9af42a08 1 32 Microsoft.Win32.SafeHandles.SafeFileMappingHandle
000007fe9af42920 1 32 Microsoft.Win32.SafeHandles.SafeViewOfFileHandle
000007fe9ad790b0 1 32 System.Web.PerfInstanceDataHandle
000007fe9c4b08d8 1 40 System.Security.SafeBSTRHandle
000007fe9ce69118 1 48 System.Runtime.CompilerServices.ConditionalWeakTable`2[[System.Transactions.ContextKey, System.Transactions],[System.Transactions.ContextData, System.Transactions]]
000007fe9c62cf68 1 48 System.Runtime.IOThreadScheduler
000007fe9af0d5f8 1 48 Microsoft.CSharp.CSharpCodeProvider
000007fe9ae4c628 1 48 System.Runtime.CompilerServices.ConditionalWeakTable`2[[System.Object, mscorlib],[System.Runtime.Serialization.SerializationInfo, mscorlib]]
000007fe9af43750 1 56 System.Web.Compilation.CompilationMutex
000007fe9ae45a60 2 64 System.Security.Cryptography.SafeProvHandle
000007fe9a91bad0 2 64 System.Threading.TimerQueue+AppDomainTimerSafeHandle
000007fea03adee0 2 96 System.Web.Security.FileSecurityDescriptorWrapper
000007fe9d669608 3 120 System.Threading.RegisteredWaitHandleSafe
000007fe9c623850 3 120 System.Net.SafeRegistryHandle
000007fe9c696808 4 128 System.Gen2GcCallback
000007fe9a97d6b0 4 128 Microsoft.Win32.SafeHandles.SafeFileHandle
000007fe9d8710a0 1 160 System.Threading.CdsSyncEtwBCLProvider
000007fe9c64b368 1 160 System.Collections.Concurrent.CDSCollectionETWBCLProvider
000007fe9c648d08 1 160 System.PinnableBufferCacheEventSource
000007fe9be65a08 5 160 Microsoft.Win32.SafeHandles.SafeProcessHandle
000007fe9f557760 1 168 System.Web.AspNetEventSource
000007fe9acab410 2 176 System.Runtime.Diagnostics.EtwProvider
000007fe9ad7daa0 8 192 System.SizedReference
000007fe9aac5d38 2 208 System.Runtime.Remoting.Contexts.Context
000007fe9e5a7c58 1 216 log4net.Appender.RollingFileAppender
000007fe9c64a138 2 224 System.ServiceModel.Channels.OverlappedContext
000007fe9cbe45c8 3 264 System.Diagnostics.PerformanceData.CounterSet
000007fe9cda2278 9 288 System.Net.SafeCloseHandle
000007fe9c628078 6 288 System.Net.SafeCloseSocketAndEvent
000007fe9ad05090 2 320 System.Diagnostics.Tracing.FrameworkEventSource
000007fe9c4be5a0 2 352 System.Data.DataSet
000007fe9c69ee18 3 360 System.Net.TlsStream
000007fe9a97cf10 4 416 System.IO.FileStream
000007fe9a8afc60 14 448 Microsoft.Win32.SafeHandles.SafeRegistryHandle
000007fe9ad05940 6 528 System.Diagnostics.Tracing.EventSource+OverideEventProvider
000007fe9c714d60 18 576 System.Net.SafeFreeContextBuffer_SECURITY
000007fe9c628d68 19 608 System.Net.SafeNativeOverlapped
000007fe9cbe49d8 14 672 System.Diagnostics.PerformanceData.CounterSetInstanceCounterDataSet
000007fe9ae78550 10 720 System.Web.DirMonCompletion
000007fe9cbe4880 14 784 System.Diagnostics.PerformanceData.CounterSetInstance
000007fe9f2d6db8 12 864 NewRelic.Agent.Core.Wrapper.AsyncAgentWrapperApi.Builders.TransactionBuilder
000007fe9bcb8250 27 864 System.Net.SafeCloseSocket+InnerSafeCloseSocket
000007fe9c6947e0 3 888 System.Net.Connection
000007fe9bcb9d18 28 1120 System.Net.SafeCloseSocket
000007fe9ad7bef8 35 1120 Microsoft.Win32.SafeHandles.SafeWaitHandle
000007fe9c2de460 3 1536 System.Data.DataTable
000007fe9c7dee68 62 2480 System.Net.SafeFreeContextBufferChannelBinding_SECURITY
000007fe9cf19418 12 2592 System.Data.DataColumn
000007fe9bcb6b38 28 3808 System.Net.Sockets.Socket
000007fe9c7196c0 120 3840 System.Security.Cryptography.SafeCertChainHandle
000007fe9c695b60 62 3968 System.Net.Sockets.NetworkStream
000007fe9c711618 62 4960 System.Net.Security._SslStream
000007fe9c718cf8 179 7160 System.Net.SafeCredentialReference
000007fe9c74c9d8 240 7680 System.Security.Cryptography.SafeCertStoreHandle
000007fe9d406ff8 377 9048 System.Reflection.Emit.DynamicResolver+DestroyScout
000007fe9dc33bd0 342 10944 System.Security.Cryptography.SafeKeyHandle
000007fe9cda9d00 25 11400 System.Net.Sockets.SocketAsyncEventArgs
000007fe9f4c7440 532 17024 Devart.Common.o
000007fe9f4e2e90 350 22400 Devart.Data.Oracle.OracleCursor
000007fe9c5e4eb8 651 26040 System.Threading.ThreadPoolWorkQueueThreadLocals
000007fe9f448870 792 31680 Microsoft.Practices.EnterpriseLibrary.Caching.Cache
000007fe9f4c5d40 151 41072 Devart.Data.Oracle.a3
000007fe9f4e0fd8 191 41256 Devart.Data.Oracle.OracleDataReader
000007fe9f3ce7d0 191 44312 Devart.Data.Oracle.OracleCommand
000007fe9c661238 1445 46240 System.Security.Cryptography.SafeHashHandle
000007fe9aaa67e0 1985 47640 System.WeakReference
000007fe9ce69d70 2193 70176 System.Transactions.SafeIUnknown
000007fe9c71c040 2593 82976 System.Security.Cryptography.X509Certificates.SafeCertContextHandle
000007fe9a756f58 1932 123648 System.Threading.ReaderWriterLock
000007fe9c74f038 4788 153216 System.Security.Cryptography.SafeLocalAllocHandle
000007fe9c749bf0 5244 167808 System.Security.Cryptography.SafeCertContextHandle
000007fe9a706568 1942 186432 System.Threading.Thread
000007fe9fcf5df0 1692 243648 Devart.Data.Oracle.dz
000007fe9c71c118 6667 320016 System.Net.SafeFreeCredential_SECURITY
000007fe9a9190e0 15031 360744 System.Threading.TimerHolder
000007fe9be64d58 2328 651840 System.Diagnostics.Process
000007fe9f440548 14217 1023624 Microsoft.Practices.EnterpriseLibrary.Common.Configuration.Storage.ConfigurationChangeFileWatcher
000007fe9ce6a6e8 14217 1364832 System.Timers.Timer
000007fe9c71c918 29980 1678880 System.Net.SafeDeleteContext_SECURITY
000007fe9a94dd68 89958 3598320 Microsoft.Win32.SafeHandles.SafeLocalAllocHandle
000007fe9a91b268 185991 5951712 Microsoft.Win32.SafeHandles.SafeTokenHandle
000007fe9ad0b578 206499 14867928 System.Reflection.Emit.DynamicResolver
000007fe9f3ca188 435920 87184000 Devart.Data.Oracle.OracleConnection
Total 1029284 objects
"완결 준비 완료"개체의 양은 나에게 두드러집니다. 0이 아니어야하고, 적어도 몇백 개가되지 않아야합니까?
마무리 자 스레드가 교착 상태 인 것 같습니다. 관리되지 않는 디버깅을 사용하고 스택 추적 위치를 확인하여 스택 위치를 확인합니다. –
우리는 이것을 dev 환경에서 재현 할 수 없습니다. 그것은 단지 찌르다에서 일어나는 일입니다. 파이널 라이저 스레드의 스택 추적을 가져 오는 방법이 있습니까? 더 자세히 설명 할 수 있는지 알아보기 위해 windgb를 살펴 보겠습니다. –