The Physical Memory Statistics show the available Performance Counters for everything that consumes "Physical Memory" on a Windows® Server. In theory, adding all of these counters together should equal the amount of RAM installed, but in practice this does not work. This is the result of Windows® using shared DLLs and some RAM allocations that are not counted anywhere (such as trimmed working set pages that have yet to be written to disk).
Available Memory (\Memory\Available Bytes)
The Available Bytes counter is the pool size of available pages in RAM that the system uses to satisfy requests for new pages. There are multiple counters available for convenience that provide this information, such as Available Mbytes, but this program uses the Available Bytes counter and does the calculation when generating the graphs.
Usually when this value is approximately at least 10% of total system memory, the system has an adequate amount of memory. However when this value is below 10% you must use additional counters, such as Pages/sec to determine if System memory is adequate for the workload.
Note that the "\Memory\Available Bytes" counter is an instantaneous counter (sampled once during the measurement period).
Microsoft® Description: Available Bytes is the amount of physical memory, in bytes, immediately available for allocation to a process or for system use. It is equal to the sum of memory assigned to the standby (cached), free and zero page lists.
Used Memory (\Process(_Total)\Working Set)
The Working Set counter is the total amount of resident pages allocated in RAM that all the processes that are running on the system can address without causing a Page Fault. The value of this counter is in bytes, but this program does the calculation to MB when it creates the graphs.
Note that the "\Process(_Total)\Working Set" counter is an instantaneous counter (sampled once during the measurement period).
Microsoft® Description: Working Set is the current size, in bytes, of the Working Set of this process. The Working Set is the set of memory pages touched recently by the threads in the process. If free memory in the computer is above a threshold, pages are left in the Working Set of a process even if they are not in use. When free memory falls below a threshold, pages are trimmed from Working Sets. If they are needed they will then be soft-faulted back into the Working Set before leaving main memory.
The Memory pages that the System uses are counted in two main counters, Cache Bytes and Pool Nonpaged Bytes.
Cache Bytes (\Memory\Cache Bytes)
The Cache Bytes counter is the amount of resident pages allocated in RAM that the Kernel threads can address without causing a Page Fault. This counter includes the Pool Paged Resident Bytes, the System Cache Resident Bytes, the System Code Resident Bytes and the System Driver Resident Bytes.
Note that the "\Memory\Cache Bytes" counter is an instantaneous counter (sampled once during the measurement period).
Microsoft® Descripton: Cache Bytes the size, in bytes, of the portion of the system file cache which is currently resident and active in physical memory. The Cache Bytes and Memory\\System Cache Resident Bytes counters are equivalent. This counter displays the last observed value only; it is not an average.
Pool NonPaged Bytes (\Memory\Pool Nonpaged Bytes)
The Pool Nonpaged Bytes counter is the amount of resident pages in RAM that the Kernel is using that cannot be paged out. This memory cannot be accessed by user processes, thus troubleshooting Non-Paged Pool Memory issues can be extremely difficult.
Note that the "\Memory\Pool Nonpaged Bytes" counter is an instantaneous counter (sampled once during the measurement period).
Microsoft® Description: Pool Nonpaged Bytes is the size, in bytes, of the nonpaged pool, an area of the system virtual memory that is used for objects that cannot be written to disk, but must remain in physical memory as long as they are allocated. Memory\\Pool Nonpaged Bytes is calculated differently than Process\\Pool Nonpaged Bytes, so it might not equal Process(_Total)\\Pool Nonpaged Bytes. This counter displays the last observed value only; it is not an average.