Physical Memory
The Physical Memory Statistics Graph shows 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).
\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.
\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.
\Memory\Cache Bytes
The Memory pages that the System uses are counted in two main counters, Cache Bytes and Pool Nonpaged 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® Description - 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.
\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.
The Pool Nonpaged Bytes counter is also referred to as "Kernel
Memory". If you ever run into any issues with Kernel Memory note that it
is extremely difficult to troubleshoot as you have to use Kernel level
tools such as "poolmon" to track what is causing the issues.
Also note that Microsoft Windows has limits on how much physical
memory can be consumed by Kernel Memory. For instance Windows Server
2008 has a maximum limit of 75% of the amount of Physical Memory. If
Kernel Memory reaches that Windows will in fact crash! Refer to the
excellent WinInternals reference manuals for more information.
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.