Cache Buffer Test
Cache maintains a buffer pool — an in-memory cache of frequently referenced data blocks — to reduce the cost of fetching blocks from disk. By default, 16 KB is the memory allocated to the database cache. Close monitoring of the buffer pool is essential to determine the adequacy of the memory allocation to the cache. By increasing the memory allocation, administrators can considerably increase cache hits, reduce disk accesses, and consequently, save the processing overheads.
The CacheBuffer test monitors the usage of the buffer pool of every database instance of the Cache database server. In the process, the test also observes the behavior of the interactive and batch buffer queues. Any Cache process created in the Cache database is set to execute either in the ‘interactive’ or in the ‘batch’ mode. Since an ‘interactive’ process expects user inputs, it has to be run in the foreground and is also, resource-intensive. A ‘batch’ process on the other hand can only be run in the background, and uses less resources.
Target of the test : A Cache Database server
Agent deploying the test : An internal/remote agent
Outputs of the test : One set of results for every database on the Cache database server
|
Measurement | Description | Measurement Unit | Interpretation |
---|---|---|---|
Buffer size: |
Indicates the current size of the buffer |
Bytes |
A well-tuned environment is one where the buffer is sufficiently sized. A low value of this measure is unhealthy, as light weight buffers force a large number of direct disk accesses causing the database to incur excessive processing overheads. |
Buffer count: |
Indicates the number of buffers of buffer size |
Number |
|
Batch queue offset: |
Indicates the current offset to the start of the LRU (least recently used) queue. |
Number |
|
Interactive buffers: |
Indicates the number of buffers currently in the interactive portion of the LRU queue |
Number |
|
Max interactive buffers: |
Indicates the maximum number of buffers in the interactive portion of the LRU queue. |
Number |
|
Requeue limit interactive: |
Indicates the threshold for requeuing an interactive buffer. |
Number |
|
Requeue limit batch: |
Indicates the threshold for requeueing a batch buffer. |
Number |
|
Interactive write queue: |
Indicates the number of interactive buffers in the current write cycle. |
Number |
|
Buffers write queue: |
Indicates the number of buffers requeued in the batch LRU queue. |
Number |
|
Write queue wait max: |
Indicates the threshold for waking the interactive write daemon.
|
Number |
|
Available interactive buffers: |
Indicates the current number of available interactive buffers. |
Number |
Ideally, this value should be high. If the value is low, then the buffer might be unable to serve all interactive job requests, thus forcing direct disk accesses. This could ultimately increase processing overheads. |
Minimum interactive buffers: |
Indicates the minimum number of buffers in the interactive portion of the LRU queue. |
Number |
|
Buffer usage: |
Indicates the percentage of buffer memory utilized. |
Percent |
A value close to 100% is a cause of concern, as it indicates that the buffer pool is rapidly filling up. This implies that there may not be enough space for additional buffers in the buffer pool; this may force direct disk accesses, which are I/O-intensive. For optimal performance therefore, the value of this measure should be low. |