Understanding the Cache Counters

The following Performance Monitor Cache and Memory counters are used to measure cache performance and are described in this chapter.

Important

The Hit% counters are best displayed in Chart view. Hits often appear in short bursts that are not visible in reports. Also, the average displayed for Hit% on the status bar in Chart view might not match the average displayed in Report view because they are calculated differently. In Chart view, the Hit% is an average of all changes in the counter during the test interval; in Report view, it is the average of the difference between the first and last counts during the test interval.

Counter

Description

Memory: Cache Bytes

How big is the cache? The Virtual Memory Manager regulates the size of the cache, which varies with the amount of physical memory and the demand for memory by other processes.

Memory: Cache Faults/sec

How many pages sought in the cache are not there and must be found elsewhere in memory or on the disk?

This counts numbers of pages, so it can be compared with other page measures, like Page Faults/sec and Pages Input/sec.

Copy Reads/sec

How often does the file system look in the cache for data requested by applications?

This is a count of all copy read calls to the cache, including hits and misses.

Copy reads are the usual method by which file data found in the cache is copied into an application's memory buffers.

Copy Read Hits %

How often do applications find what they need in the cache?

Any value over 80% is excellent. Compare with Copy Reads/sec to see how many hits you are really getting. A small percentage of many calls might represent more hits than a higher percentage of an insignificant number of calls.

This is the percentage of copy read calls satisfied by reads from the cache out of all read calls. Performance Monitor displays the value calculated for the last time interval, not an average. It also counts numbers of reads, regardless of amount of data reads.

Read Aheads/sec

How often can the Cache Manager read ahead in a file?

Read aheads are a very efficient strategy in most cases. Sequential reading from a file lets the Cache Manager predict the pattern and read even larger blocks of data into the cache on each I/O.

Data Maps/sec

How often are file systems reading their directories?

This counts read-only access to file system directories, the File Allocation Table in the FAT file system, and the Master File Table in NTFS.

If this count is high, the Cache Manager might be occupied with directory operations. This is not a measure of cache use by applications.

Fast Reads

How often are applications able to go directly to the cache and bypass the file system? A value over 50% is excellent.

The alternative is to send an I/O request to the file system.

Data Flushes/sec

How often is cache data being written back to disk? This counts application requests to flush data from the cache. It is an indirect indicator of the volume and frequency of application data changes.

Data Flush Pages/sec

How much data is the application changing? This counter measures data flushes in numbers of pages rather than number of disk accesses.

Counts the number of modified pages in the cache that are written back to disk. This includes pages written by the System process when many changed pages have accumulated, pages flushed so the cache can be trimmed, and disk writes caused by an application write-through request.

Lazy Write Flushes/sec

How much data is an application changing? How much memory is available to the cache?

Lazy write flushes are a subset of data flushes. The Lazy Writer Thread in the system process periodically writes changed pages from the modified page list back to disk and flushes them from the cache. This thread is activated more often when memory needs to be released for other uses.

This counter counts number of write and flush operations, regardless of the amount of data written.

Lazy Write Pages/sec

How much data is an application changing? How much memory is available to the cache?

Lazy Write Pages are a subset of Data Flush Pages.

Counts the numbers of pages written back to disk by a periodic system thread. Lazy writes are an asynchronous file operation that allows the application to update and continue without waiting for the I/O to be completed.