I am running some tests on a very powerful machine ( 24GB RAM, Window 2008 64bit )

I checked my task manager: Physical memory: 98% ( RAM is 24GB )

But the totally "Memory(Private working set)" usage of all my running processors is no more than 16GB

Where are those extra 8GB used for? Is it used by the OS IO buffer, or somewhere else?

Can anyone contribute some ideas?

  • 3
    "Windows memory management is rocket science. And don’t believe anyone who tells you otherwise."...zdnet.com/blog/bott/…
    – Moab
    Nov 19 '10 at 19:44
  • @Moab: Oh come now. There's no calculus or diffeqs involved in mm! :) Jul 18 '17 at 18:12

Yes, used for caching and buffers. Modern OS's try to be smart...if you have 8GB of memory just sitting idle, not being used for anything, it's being wasted. So as long as no application is requesting it, the OS finds other things to use it for to try and speed stuff up. Don't worry about it -- if you application needs the memory, the OS will instantly free it up as soon as the app asks for it.

  • 1
    This is also why things will be paged to disk even if the RAM isn't full; so that if the system needs to free up the RAM it can do so immediately. (This is why it's always a bad idea to turn your paging file off.)
    – Shinrai
    Nov 19 '10 at 20:30
  • @Shinrai Well not if windows can't find enough to fill up that RAM with those extra activities. Wait ... we are talking about Windows :D Nevermind! Aug 3 '16 at 1:24
  • "instantly" LOL.
    – Norm
    Jul 12 '18 at 17:15

Quick answer: There's a lot more in RAM than the total of the "Memory(Private working set)" for all processes.

First, there's the shared working set for all processes. Now much of this is actually shared among processes, so it only counts toward total RAM usage once. But what task manager calls "Memory(Shared working set)" should really be called "potentially shareable". We can't tell from that display how much is actually being shared. All we can say is that the total RAM used there would be the largest of all of the processes. But actually there will be much more than that.

Then there are kernel space allocations, which show up nowhere on task manager's processes list. In the "Performance" tab though you will see indications of paged and nonpaged memory - those are the kernel pools. All of the nonpaged pool is in RAM all the time, and much of the paged pool will be also.

If you want to get a real look at "what's all my RAM being used for", look at the sysinternals tool "RAMmap". Note that on the "Use Counts" display the "active" column, and perhaps "modified", is the only thing that counts toward RAM usage.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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