Confused about memory usage (windows 2008 SP1)

leeland

Diamond Member
Dec 12, 2000
3,659
0
76
I am not a server guy...or a low level OS guy...I can certainly get by on my own and am knowledgeable about the system(s) in general but at this moment I had a question presented to me which I can't answer and I am hoping for some help from you guys...

I have a windows 2008 SP1 x64 Enterprise Virtual server...

20.0 GB of RAM allocated.
25.6 GB of MB for page file (set by server admins)

SQL server 2008 enterprise.

The server has 'lock pages in memory' enabled
The SQL server is locked at 8500 mb for max memory usage.


That should leave me about 11 gb's of RAM free for the server.

At this moment it is showing 94% used...I am trying to determine what is using the other 11 GB's but I cannot find a real accurate way to determine what is using the memory...

I tried Process explorer and I couldn't figure out how to pull the information out of it.

I tried running tasklist in dos to a flat file than importing it into excel to calculate the memory used...that wasn't adding up correctly...

Does anyone have a tried and true method for determining memory usage on a windows 2008 box?


Thanks in advance,

Lee
 

Nothinman

Elite Member
Sep 14, 2001
30,672
0
0
leeland said:
Does anyone have a tried and true method for determining memory usage on a windows 2008 box?

Nothing black and white because the subject doesn't work that way. Memory accounting has always been a best guess, black magic kind of thing. It's most likely just filesystem cache, but there's no way you'll be able to account for everything with 100% accuracy because of shared memory between processes and such.
 

leeland

Diamond Member
Dec 12, 2000
3,659
0
76
RAMMap will show exactly how your RAM is being used:
http://technet.microsoft.com/en-us/sysinternals/ff700229

thanks for the link I will check this out soon!

Nothing black and white because the subject doesn't work that way. Memory accounting has always been a best guess, black magic kind of thing. It's most likely just filesystem cache, but there's no way you'll be able to account for everything with 100% accuracy because of shared memory between processes and such.

understandable...I would just like to have a 95% overall picture...I can assume that you wouldn't be able to account for it all...but when large chunks are missing it would be nice to be able to dx why...even if to say it is unaccounted for due to a system issue...or something
 

dawks

Diamond Member
Oct 9, 1999
5,071
2
81
thanks for the link I will check this out soon!



understandable...I would just like to have a 95% overall picture...I can assume that you wouldn't be able to account for it all...but when large chunks are missing it would be nice to be able to dx why...even if to say it is unaccounted for due to a system issue...or something

As Nothingman says, its most likely the OS doing some form of caching. What I've found is that the NT Kernel will use all the ram in the system for something. If its not actively in use, it will cache recently used data (programs) so things launch faster in the future. So in your case it might be holding something like SQL Enterprise Manager in memory, or caching filesystem data. Some of that memory might be used to actually hold some of your more frequently used database data for quicker access.. potentially.