ASP.NET/WCF: Why are logical / physical threads removed with a full GC loop?

Recently, I have been recording several hours of WCF service .NET memory counters. The service is hosted in IIS on Win2k8, 8 core, x64 with 20 GB RAM.

I see that the GC is very healthy, performing a complete collection of only approx. every 2 hours!

I noticed that over the same period of time the number of physical and logical flows increases. When complete assembly occurs, the number of physical and logical flows drops and continues to grow again by one level.

Why do the GC full collection cycle and drop in flows correlate? Why is the number of threads continuously increasing?

This is a pure ASP.NET/WCF threading model. No custom threads are created, etc.

Thanks Alex

+3
source share
1 answer

It seems that the answer was quite simple: threads create and die when the thread pool grows and contracts over time. Typically, these threads have a relatively long lifespan, which means that they end in generation 2. That's why they, of course, only get rid of the full GC cycle.

, , WinDbg. , GC ! MS , , ++ ( ....). , , GC .

+1

Source: https://habr.com/ru/post/1736373/


All Articles