Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have a windows 2008 x64 server with 8GB of RAM installed.

Task Manager and Resource Monitor both insist that 7.5GB of the RAM is in use. However, the memory list under Processes (Memory Private Bytes) doesn't add up. I do have Show Processes from all users checked and hand adding the numbers I come up with about 3.5GB of RAM.

I also looked at the latest copy of SysInternals Process Explorer. And neither the Private Bytes or Working Set adds up to more than about 3.5GB of RAM in use.

What's going on?

=====

Update: I bounced the server to see what would happen with the memory utilization. After boot and regular operations began it sat at 3GB of RAM usage. 18 hours later, it's back up to 6.8GB of usage with no indication as to where the additional 3.5GB or so of RAM is being used.

Here are links to screen shots of the resource monitor and task manager:

Resource Monitor

Task Manager

Update 2: Well, I believe I located the problem. When I detached one of the larger databases from my sql server the amount of ram shown as "in use" dropped drastically. The Memory Private Bytes count barely moved. So I'm guessing that SQL server has some way of allocating memory where it doesn't really show up in any of the monitors.

I went further and created a new database file, then transferred all of the data from the one I detached. Even though it has the same data, and the same transactions going through it, the memory in use has stayed low. Maybe there was some corruption in the DB? I'll leave it to the DB gods and go searching for another "problem" ;)

share|improve this question
    
Thanks for sharing your findings! :) –  James Risto Nov 4 '09 at 18:26
add comment

5 Answers

up vote 5 down vote accepted

I found this article today which discusses in detail locked pages, AWE, and 64 bit systems. http://blogs.msdn.com/psssql/archive/2009/09/11/fun-with-locked-pages-awe-task-manager-and-the-working-set.aspx

One of the bullet points (#3) is title "Why is task manager not showing all of the memory allocated for SQL Server"

It's a very nice explanation. In the end the reason this doesn't show up is that sql server has "locked" those pages in memory. Locked pages are NOT part of the working set so they won't appear in Task manager or even appear as part of the applications memory set.

If you run select * from sys.dm_os_process_memory you can see the locked_page_allocations_kb field which will tell you how much RAM sql server has allocated in those pages.

share|improve this answer
add comment

Task Manager has a memory bar/graph below the CPU bar/graph. This is the amount used by applications.

The sum of the amount indicated by that graph and the amount indicated as "Available" should equal your 8GB total.

"Available" is more than "Free" because "Cached" is included in "Available".

share|improve this answer
    
Yes.. The problem is that adding up all of the memory that the applications are using does not equal even half of the RAM in use. I'm trying to figure out what this hidden thing is which has swallowed several GB of ram. –  Chris Lively Oct 21 '09 at 22:10
    
Yes I think Graeme is saying that your disk cache is using the rest. Don't worry. It will give it back if needed. –  James Risto Oct 22 '09 at 16:43
    
can you post a screenshot of Task Manager's performance tab? –  ThatGraemeGuy Oct 23 '09 at 10:08
add comment

I'm having a similar issue. Came across this technet article - 907877. Try using the SQL command DBCC MEMORYSTATUS and check if AWE allocated entry equals your missing memory.

share|improve this answer
    
support.microsoft.com/kb/907877 does mention "Note Performance Monitor (PerfMon) and Task Manager do not account for memory correctly if Address Windowing Extentions (AWE) support is enabled." –  pplrppl Nov 4 '09 at 17:55
    
Its an x64 server, so AWE doesn't apply. It's a noop in 64 bit. –  Chris Lively Nov 5 '09 at 15:58
add comment

You're most likely sharing RAM with your video card. Check your BIOS settings.

Not a clue, then. Some suggestions here are to test the memory modules.

share|improve this answer
3  
3.5gb shared to a video card... on a server? Unlikely. –  Izzy Oct 21 '09 at 20:18
    
Its a headless dell server... –  Chris Lively Oct 21 '09 at 22:08
    
I should also mention that bouncing the machine returns everything back to normal. But that isn't a good solution, I need to know where it's going off to. –  Chris Lively Oct 21 '09 at 22:11
add comment

What applications are you running? Could be that your'e running a development app or a third party software package that has memory leaks?

share|improve this answer
    
Possible. How could I figure out which app is the culprit? The list includes SQL 2005 SP3, Sharepoint 2007, and a c# web service running under IIS. I don't think it's the web service, because it is running on other machines with zero memory issues. –  Chris Lively Oct 22 '09 at 18:32
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.