Hi, We're having a strange problem that seems to be related to garbage collection. We're performing load testing through a load generator tool (LoadRunner). At a certain load level, the response times show strange and heavy fluctuations. Request handling times go up by a factor 10 over an extended period of time (several minutes, up to 10 minutes). Analysis of performance counters gave some interesting results: * Context switches go up heavily * Contention rate/sec (.NET CLR LocksAndThreads) goes up heavily * Time spent in GC (.NET CLR Memory) goes up heavily * Gen 0 heap size (.NET CLR Memory) falls back from fluctuating around 5MB to a flat 1MB * Gen 1 heap size (.NET CLR Memory) falls back from fluctuating around 850KB to nearly nearly flat 350KB * Gen 2 heap size (.NET CLR Memory) keeps fluctuating around 29MB. At one point, it goes up a few MBs in but this might be unrelated. The test is running on a 4 processor server with 1.5GB RAM. According to the documentation, the heap size for generation 0 is the upper limit on memory allocated in generation 0. When this limit is reached, garbage collection on generation 0 occurs. The garbage collector tunes this value. Based on this and the numbers above, I come to the conclusion that the context switches are caused by garbage collection. For some to me unknown reason, the GC lowers its generation 0 heap size to a bare minimum. Due to that, it must collect like crazy, practically killing the system. Can someone explain why this happens and how we can prevent it? Thanks, Bert Roos
=================================== This list is hosted by DevelopMentor� http://www.develop.com Some .NET courses you may be interested in: NEW! Guerrilla ASP.NET, 26 Jan 2004, in Los Angeles http://www.develop.com/courses/gaspdotnetls View archives and manage your subscription(s) at http://discuss.develop.com
