Memory Leak with FileMonitorTarget / CacheDependency+DepFileInfo in ASP.NET -
Our Aspiknet web app we have been facing a much wider memory leak that I investigation. Using WinDbg, I got down to are the ones largest memory eat in your application (RAN dumpHeap -stat
in WinDbg console to get these!):
MethodTable P calculation Overall size type ... 000007fee8306e10 212928 25551360 System. Web. UI. Literal Control 000007feebf44748 705231 96776168 System. Object [] 000007fee838fd18 4394539 140625248 System. Web. Caching Cash Dependency + DefileInfo 000007fee838e678 4394614 210941472 System. Webfilemonitor tag 000007feebf567b0 18259 267524784 System. Select .Hashtable + bucket [] 00000000024897c0 1863 315,249,528 Free 000007feebf56cd0 14,315 735,545,880 System.Byte [] 000007feebf4ec90 1,293,939 +1532855608 System.String
I String objects can be quite normal; Still definitely room for improvement, but what makes it really itching me
System.Web.FileMonitorTarget
is the number of objects that are more than 4 million examples on our stack (48 bytes) Using two memory dumps and comparing them I have found that these objects are not being cleared by GC.
What am I trying to find out: where are these objects coming from? I have already tried the NT Memory Profiler so that it can reach the root of the evil but it is not anywhere near any of our orbit. I canceled System.Web.Caching.CacheDependency + bonding DepFileInfo
and do not use the System.Web.Cache
but Our cash we file dependency entries looking for
in addition, there are System.Byte []
stack which gives me 14,315 incidents of signing up more than 700 MB stuns -. The only place where we use the byte []
is our image uploading component but we have around 30 images uploaded per day.
What could be the source of these byte
arrays and FileMonitorTarget
objects? Any sign is very welcome!
Oliver
P.S. Someone asked a very same question but only 'reply' was very common.
There are some things that I see you are right, the wire is often used in large numbers, however You have around 1.4 GB of strings on the heap, is this sound correct? If I do not consider it if it is about the expected range then ignore it.
If you suspect FileMonitorTarget
and / or byte []
, using the leaking examples dump ! DumpHeap -mt XXX
where XXX is listed for MethodTable
to show you a delta column (! DumpHeap
) and limit the number of instances you throw ) As it makes this task a bit easier, instead of SOS you can use PSSCOR2.
The next thing is what should be done to keep specific examples alive. ! The Gcroot
command will tell you how to choose a specific example at random and inspect the roots if everything is in the form of the desired move as next if you are applying for these types of opportunities , Then it is that you will find examples that should be freed. After getting the root, you need to understand which part of the code is on them. A common source is the end of the event, but the objects are kept alive due to other possible reasons.
Comments
Post a Comment