Our customer is suspecting a memory leak due to slow down during heavy traffic.
We've taken a memory dump in order to investigate the matter, but we are unsure of the meaning of the results:
We noticed that the .NET process memory had increased significantly (1 GB), but did not shrink back to its initial sizes when traffic had stopped. "Used Memory" metric remained at very low values.
Is this normal behavior for .NET process memory? Will the .NET process memory actually become available in case it is required?
A memory leak is an allocation of memory by the application that is not freed again when the memory is not used anymore. The obvious sign of a memory leak is growing memory consumption with constant load on your application.
For better understanding of the causes of memory leaks and the diagnosis process, check the following documentation link:
Thank you for your answer - we understand what a memory leak is. What we are trying to understand is what is the meaning of having .Net process memory inflation?
Is this memory taken or will it free up when another activity requires it?
The overal memory consumed for the physical host and the heap consumed by each instrumented process.
Memory increases for two reasons: A bad GC memory setting or an application problem. The application problem is either a memory leak or one of the several other memory problems.
If the memory is consistently high, with GCs, but no
OutOfMemory errors, analyze the constant high memory usage. Identify how GC impacts your response time. If memory increases and you get an, try to pinpoint memory leaks.
If memory increases slowly, and a GC decreases memory, but it increases again, check your GC/memory settings. They may be incorrect.
If you have many GCs and volatile memory, but your GC settings are correct, your transactions may consume too much memory. Analyze the transaction memory usage.
I hope the above information will be helpful to understand the memory inflation.
I found the following descriptions about memory:
Similar discussions you can find in the following post: