Windows Explored

Everyday Windows Desktop Support, Advanced Troubleshooting & Other OS Tidbits

Making Sense of Memory Metrics in the Windows 7 Task Manager

Posted by William Diaz on August 1, 2011

In an earlier blog, I covered memory metrics in the Windows XP Performance tab. Here, I’ll be covering this in Windows 7.

  • Memory
    • Basically, a graph of current memory usage. Specifically, this is the total of all process’ private working sets. This graph corresponds with the “In Use” list shown in Resource Monitor below.
  • Physical Memory

    • Total: Total System Ram. This is actually 4096 KBs. You don’t see it yet, but 74 MBs have been allocated as “Hardware Reserved”  and is counted against this number.
    • Cached: Memory that contains program data but is no longer being used. The Windows memory manager will flush the contents of this memory to make room for new data. This number includes Available but does not include Free. By this logic you may be wondering why then is it larger (2001 MBs) than Available (1996 MBs). To understand this metric, you need to look into the Resource Monitor and take into account the “Modified List”. Below, you will see the Modified List is 59 MBs, so 1996 – 55 + 59 = 2000 (don’t ask me about the missing MB, were probably rounding).
    • Available: The amount of RAM that is available for immediate use, including Cached  and Free memory (actually, were subtracting the Modified List here: 2001 – 59 + 55 = 1197). Windows is actually caching data here but these pages are discarded when Windows needs to make memory available for new processes or allocate more memory to existing processes.
    • Free: The subject of lots of misinformation in Windows Vista and Windows 7, claiming it is a memory resource hog. Yes, this is actually free RAM memory, in that it is not being used in the same sense as Available memory is. The reality is that you want to see this number small cause it means you are really using all the memory you paid for. There is an adage of some kind with respect to this that goes “Unused Memory is wasted memory.”
  • Kernel Memory
    • Paged: Kernel data that can be written to the page file.
    • Nonpaged: Kernel data that cannot be paged out and always remains in physical RAM.
  • System
    • Handles: A total of all open handles from all processes. A handle can be any number of objects, from files to registry keys. See here for a look into handles. You can use Process Explorer to see all the handles associated with a particular process.
    • Threads: The total number of threads from all processes. Threads do the actual work of a process. When exploring vague performance issues, look for an unusually high number of threads from any process. What’s unusually high? That depends on the OS and the amount of memory. See here for a detailed analysis. You can use Process Explorer to look inside the individual processes to see threads.
    • Processes: The total number of active processes. Multicore processors and large amounts of RAM allow more and more processes to run without having a negative impact on system performance, but it’s still a good idea to become familiar with all the various processes and what they do and reduce the number of unneeded programs running in Windows if you are a performance stickler like me (or a systems administrator).
    • Up Time: The time since the last restart. When dealing with vague issues, I look here to see how long it has been since the system has been restarted, keeping an open eye for anything more than a couple days. I once came across a workstation that had an uptime of 31 days.
    • Commit: This was known as the PF Usage in the Windows XP task manager. Basically, the first number (Commit Charge) represents the amount of both physical and page memory committed to system resources, and, like its XP counterpart, is the potential page file usage, not actual usage. The second number (Commit Limit) is the total amount of both physical and virtual memory available to the system. In this case, there are 4GBs RAM + a 4GB page file for a total of 8 GBs of virtual address space (excluding hardware reserved). If Commit Charge and Commit Limit are close to each other during peak system usage, you may want to consider increasing the page file size or investing in some more RAM … or both.
  • Memory Usage as a %
    • Altogether, half of the system RAM is being used. You can arrive at a round-about number using the following equation: 4022 Total MBs – 1996 Available MBs = 2026 MBs in use, or 4022 * .50 = 2011(yeah, there’s a 15 MB difference and I am not going to try to break that down).
  • Resource Monitor (resmon.exe)
    • Hardware Reserved: This is memory allocated to the various hardware resources on the system. Systems with dedicated hardware tend to need less hardware reserved memory (or almost none), while laptops, especially those that do not have dedicated video graphics cards, will often set aside more memory as hardware reserved. When troubleshooting issues where there are very larger amounts of RAM being reserved to hardware, make sure the RAM modules are installed in the correct slots, that the size of the RAM module is supported by the motherboard, and, if you are installing more than 3GBs of RAM, that the you are using a 64 bit OS. Additionally, some motherboards have BIOS settings that need to explicitly toggled before they can see 4GBs of RAM (sometimes referred to as a “Memory Hole”). See the The Mystery of the Missing Memory -or- It Pays to Know Your Hardware to see how the BIOS can have a direct impact on this number.
    • In Use: Memory being used by system and OS resources, like drivers and processes. This metric is arrived at by subtracting the total of Modified, Standby, and Free memory from the recognized RAM, i.e. 4022- (59 + 1941 + 55) = 1967.
    • Modified: Memory that contains data that has been modified but not for a while and can be written, or paged, to the disk and then added to the Standby list when the memory manager deems necessary.
    • Standby: This is basically a cache of recent data that is stored in RAM for quick access but always on the chopping block. When new processes or existing process require more RAM, the Windows memory manager goes here to allocate memory to that process. It pages out data based on its priority, which ranges from 0-7, 7 being the highest. The Microsoft Memory Sizing Guide for Windows 7 describes this as “repurposing a page.”
    • Free: Memory that has not been allocated to any process or memory that has been reclaimed from a process and returned to the memory manager. Again, a lot of misinformation about this number has lead many to believe that Windows Vista and 7 are memory hogs.

If all this excites you, you may want to play around with RAMMap, a SysInternals memory tool. For example, a summary of the priority of the Standby list covered above:


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: