Yes, Physical Memory is a Bottleneck. What’s next?

We identify if physical memory is bottleneck by investigating the rate of hard page faults (Memory \ Page Reads / sec) occurring in the system.  Please see here for more information.

Once we have found that there is a bottleneck in terms of physical memory, we need to proceed ahead with further analysis.  Following are few of the questions in general without in context of some specific application, which I think we need to find answers for them and act accordingly.

1.       Is memory bottleneck due to memory consumed by OS / device drivers?
A section of system memory, known as pool memory, is reserved for use by the operating system.  Pool memory is either paged or non-paged.  Monitor ‘Memory \ Pool Paged Bytes’, ‘Memory \ Pool Non-paged Bytes’ and ‘Memory \ Available Memory’ with respect to ‘Elapsed Time’.  Find out if ‘Available Memory’ is getting affected due to Pool Bytes (paged as well non-paged).

Memory \ Available Bytes: The amount of physical memory (in bytes) available to processes running on the computer.

Memory \ Pool Paged Bytes: The amount of physical memory (in bytes) that is used by device driver or OS but can be freed when required.

Memory \ Pool Non-paged Bytes: Data in non-paged pool section is always stored in physical memory and never saved to the disk.  This section is usually reserved for device drivers or other critical components that cannot wait for memory to be paged.

Notes:
§         None

2.       Is too much memory dedicated to the ‘Caches’?
Windows Server 2003 automatically trims the cache when memory is scarce and enlarges the cache when memory is ample.  Monitor ‘Available Memory’ and ‘Cache Bytes’ performance counters with respect to ‘Elapsed Time’.  By default, the caches use up to 50 percent of available physical memory.

Memory \ Available Bytes: The amount of physical memory (in bytes) available to processes running on the computer.

Memory \ Cache Bytes: The current size (in bytes) of the file system cache.  The counter value is the sum of Memory \ System Cache Resident Bytes, Memory \ System Driver Resident Bytes, Memory \ System Code Resident Bytes, and Memory \ Pool Paged Resident Bytes.

Notes:
§         None

3.       Which process to target for analyzing the bottleneck further?
Monitor ‘Working Set’ of all processes and ‘Available Memory’ with respect to ‘Elapsed Time’.   Find out the processes, of which ‘Working Set’ are fluctuating more in response to memory availability.

Memory \ Available Bytes: The amount of physical memory (in bytes) available to processes running on the computer.

Process \ Working Set: The amount of physical memory (in bytes) where a process stores all its code and frequently used data.

Notes:
§         If free memory on the computer is above a threshold (4MB), pages are left in the working set of a process even if they are not in use.  When free memory falls below the threshold (4 MB), pages are trimmed from working set.  If the trimmed pages later needed, they are soft-faulted back into the working set before leaving main memory.

4.       Is there any memory leak associated with a process?
Investigate memory usage of process / service using following counters with respect to ‘Elapsed Time’:

Memory \ Available Bytes: Its value tends to fall during a memory leak.  It reports overall available bytes to the system.

Process \ Private Bytes: Its value tends to rise during a memory leak.  It reports bytes allocated exclusively for a specific process.

Process \ Working Set: Its value tends to rise during a memory leak.  It reports the shared and private bytes allocated to a process.

Process \ Page File Bytes: Its value tends to rise during a memory leak.  It reports the size of paging file.

Process \ Handle Count: Its value tends to rise during a memory leak but it is not necessary in all the cases.  It reports the number of handles that an application opened for objects it creates.  Handles are used by programs to identify resources they must access.

Notes:
§         None

References:

Comments

Popular posts from this blog

Performance Test Run Report Template

Understanding Blockchain

Bugs Management in Agile Project