Managing your buffer pools
To manage your buffer pools efficiently, you must consider the factors
that affect the buffer pool I/O operations and also the statistics associated
with the buffer pools.
The following factors affect buffer pool I/O operations.
- If a page containing the required data is not found in the buffer pool,
it is read in synchronously to an available buffer from its DASD page set.
- Whenever a page is updated, it is put on an internal queue of pages to
be (potentially) written out to DASD. This means that the buffer used by
that page is unavailable for use by any other page until the buffer has been
written to DASD.
- If the number of pages queued to be written to DASD exceeds 85%
of the total number of buffers in the pool, an asynchronous write processor
is started to put the buffers to DASD.
Similarly, should the number of
buffers available for page get requests become less than 15% of the
total number of buffers in the pool, the asynchronous write processor is started
to perform the write I/O operations.
The write processor stops when
the number of pages queued to be written to DASD has fallen to 75%
of the total number of buffer in the pool.
- If the number of pages queued for writing to DASD exceeds 95%
of the total number of buffers in the pool, all updates result in a synchronous
write of the page to DASD.
Similarly, if the number of buffers available
for page get requests becomes less than 5% of the total number of
buffers in the pool, all updates result in a synchronous write of the page
to DASD.
- If the number of buffers available for page get requests ever reaches
zero, a transaction that encounters this condition is suspended until the
asynchronous write processor has finished.
- If a page is frequently updated, the page spends most of its time on the
queue of pages waiting to be written to DASD. Because this queue is in least
recently used order, it is possible that a frequently updated page placed
on this least recently used queue is never written out to DASD. For this
reason, at the time of update, if the page is found to have been waiting on
the write to DASD queue for at least 2 checkpoints, it is synchronously written
to DASD. Updating occurs at checkpoint time.
The aim of this algorithm
is to maximize the time pages spend in buffer pool memory while allowing the
system to function if the system load puts the buffer pool usage under stress.