1.6 Buffer Manager

The Buffer Manager object provides counters to monitor how Microsoft SQL Server uses:

  • Memory to store data pages, internal data structures, and the procedure cache.

  • Counters to monitor the physical I/O as Microsoft SQL Server reads database pages from, and writes database pages to, the disk.

1.6.1 For Microsoft SQL Server 2008/2012/2014/2016

Default Collection Interval — Every 15 minutes

Table 1-6 Buffer Manager Metrics

Metric Description

Buffer Manager Counter Name (key column)

Performance metric name. See Table 1-7.

The Buffer Manager Counter Name key column contains several metrics. Table 1-7 provides a list of these metrics and a description for each.

Table 1-7 Buffer Manager Counter Name Metrics

Metric Description

Buffer Cache Hit Ratio

Percentage of pages found in the buffer cache without having to read from disk. The ratio is the total number of cache hits divided by the total number of cache lookups since Microsoft SQL Server was started. After a long period of time, the ratio does not change very much. Because reading from the cache is much less expensive than reading from disk, this ratio should be high. Generally, you can increase the buffer cache hit ratio by increasing the amount of memory available to Microsoft SQL Server.

Buffer Cache Hit Ratio Base

Denominator ("base") of a fraction that the performance counter Buffer Cache Hit Ratio represents.

Checkpoint Pages/sec

Number of pages flushed to disk per second by a checkpoint or other operations that cause all dirty pages to be flushed to disk.

Database Pages

Total number of database pages.

Free List Stalls/sec

Number of requests that had to wait for a free page.

Free Pages

Total number of pages on all free lists.

Lazy Writes/sec

Number of buffers written per second by the buffer manager's lazy writer. The lazy writer is a system process that flushes out batches of dirty, aged buffers (buffers that contain changes that must be written back to disk before the buffer can be reused for a different page) and make them available to user processes. The lazy writer eliminates the need to perform frequent checkpoints in order to create available buffers.

Page Lookups/sec

Number of requests to find a page in the buffer pool.

Page Reads/sec

Number of physical database page reads issued per second. This statistic displays the total number of physical page reads across all databases. Because physical I/O is expensive, you may be able to minimize the cost by using a larger data cache, intelligent indexes, more efficient queries, or by changing the database design.

Page Writes/sec

Number of database page writes issued per second. Page writes are generally expensive. Reducing page-write activity is important for optimal tuning. One way to do this is to ensure that you do not run out of free buffers in the free buffer pool. If you do, page writes will occur while waiting for an unused cache buffer to flush.

Procedure Cache Pages

Number of pages used to store compiled queries.

Readahead Pages/sec

Number of pages read in anticipation of use.

Reserved Pages

Number of buffer pool reserved pages.

Stolen Pages

Number of pages used for miscellaneous server purposes (including procedure cache).

Target Pages

Ideal number of pages in the buffer pool.

Total Pages

Number of pages in the buffer pool (includes database, free, and stolen pages).