user3770190
user3770190

Reputation: 27

Huge reserved memory according to DebugDial (memory leak?)

We experience memory problems in production.

On the 2008 Windows Server there are many web api services. I see that most of them have the same problem(?) which is quite a big number as reserved memory. Below are informations from one othe services which I got using DebugDiag. The service uses Linq2Sql, another WebApi service, FileSystem only to write to LogFile, and sends Email.

.NET GC Heap Information

GC Heap Size 84,77 MBytes
Total Commit Size 153 MB

Total Reserved Size 17254 MB

Virtual Memory Summary

Size of largest free VM block 7,97 TBytes

Free memory fragmentation 0,11%

Free Memory 7,98 TBytes (99,79% of Total Memory)

Reserved Memory 17,03 GBytes (0,21% of Total Memory)

Committed Memory 384,59 MBytes (0% of Total Memory)

Total Memory 8 TBytes

Largest free block at 0x00000005`3f380000

Virtual Memory Details

Virtual Allocations 17,19 GBytes

Loaded Modules 179,97 MBytes

Threads 17,27 MBytes

System 4 KBytes

Page Heaps 0 Bytes

Native Heaps 28,76 MBytes

Virtual Allocation Summary

Reserved memory 17 GBytes

Committed memory 185,82 MBytes

Mapped memory 15,5 MBytes

Reserved block count 94 blocks

Committed block count 129 blocks

Mapped block count 30 blocks

In Resource Monitor I have following informations:

Commited: 257 MB

Working 394 MB

Private 198 MB

Should I ignore this information about reserved memory or it tells me something really important?

I would be grateful for any hint.

Upvotes: 2

Views: 1259

Answers (1)

Puneet Gupta
Puneet Gupta

Reputation: 2297

Reserved memory refers to VIRTUAL MEMORY used by a process. This is something that you can check by viewing the Virtual Bytes perfmon counter. I don't think task manager still has a column that shows this information. If you Sysinternals tools like Process Explorer or VMMap, you can see the virtual bytes used by the process and that should be close to what Debugdiag is showing you as the RESERVED memory.

Starting .NET Framework 4.5 (I think) and especially on 64 bit OS, CLR reserves a HUGE chunk of memory (because it is virtual and not physical). For e.g. 4.5 asp.net application on a 8 proc box running in x64 mode - the initial reserved memory will be as high as 18GB. This is totally expected and not a problem at all.

Upvotes: 1

Related Questions