3 ms·
My team and I are in the middle of a bad one right now. Our site is allocating incredible amounts of memory per page request, and it took us forever to figure o
by hacknat 11y ago
My team and I are in the middle of a bad one right now. Our site is allocating incredible amounts of memory per page request, and it took us forever to figure out we didn't have a memory leak, at least in the traditional sense. We're running .NET, and its GC scheduler has 3 tiers for objects 0,1, and 2. 0 and 1 are short lived objects, but after an object has been around long enough the GC assumes it will probably be around forever and the 2nd tier garbage collector gets almost no time to run. We proved this by forcing the GC-2 to run longer and it brings the memory under control, so we don't have a "leak", per se, but we still can't figure out why these ephemeral objects are sticking around long enough to get so promoted.
- grandinj 11y agoIncrease the size of your Eden space. You probably have something allocating very large amounts of temp objects, which is exhausting Eden. You should optimism that, whatever it is, but bumping up Eden will give you some breathing room.
- i336_ 11y agoWould it be too insane of an idea to go do a local full rebuild of .NET, now that it's open source? If Microsoft can get "[Build|Passing]", surely you can too... :P Build .NET, prove the issue still exists with the local build, then add new instrumentation to the GC routines inside .NET's runtime. Instrumentation never killed anybody... and if this issue persists too much longer... I can't deny that it's a crazy idea though.