Reputation: 27
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
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