Feedback
Did this article resolve your question/issue?

   

Article

What does Buffer Flush mean?

« Go Back

Information

 
TitleWhat does Buffer Flush mean?
URL NameP85906
Article Number000177718
EnvironmentProduct: Progress OpenEdge
Version: All supported versions
OS: All supported platforms
Question/Problem Description
Buffer Flushed Explained
How does Buffer Flush work?
What is the PROMON : "Buffs Flushed"

Buffers Flushed metrics are found in several PROMON views:
  • promon -> 5. Activity    "Buffs Flushed"
  • promon -> R&D -> 2. Activity Displays -> 1. Summary       "Flushed at chkpt"
  • promon -> R&D -> 2. Activity Displays -> 4. Page Writers  "Flushed at checkpoint"
  • promon -> R&D -> 3. Other Displays   -> 4. Checkpoints.  (per individual checkpoint)
Steps to Reproduce
Clarifying Information
Error Message
Defect Number
Enhancement Number
Cause
Resolution
Writes from the APW "immediate" Queue take place when there are large quantities of modified buffers that have made their way to the "old" end of the LRU chain.

When a process wants to read in a new block into memory, it looks at the "old" end of the LRU chain to find a buffer whose contents can be replaced with the new block. The idea is that a buffer that has not been used for a while is least likely to be needed again in the near future. If the oldest buffer has been modified, it needs to be written to disk before being replaced. It is placed on the APW Queue to be written by the page writers as soon as possible. This is done so that the process that wants to read a block, does not have to be delayed by writing the modified buffer.

It may turn out that the next oldest buffer is also modified and is moved to the APW Queue, and also the next, and so on. This is repeated for a maximum of 10 times, after which the process that wants to read the new block will move the buffer to the front of the LRU chain and do the write itself. Then it will use the buffer to store the required block.

These modified buffers may or may not be on the Checkpoint queue. Often under an especially heavy update workload, it turns out that they are not. Thus the page writers need to write buffers from the APW Queue that are not scheduled for checkpoint. This means the number of APW Q writes can be larger than the number of buffers that were dirty at the beginning of the checkpoint (the value in the "Dirty" column).

Furthermore, since those buffers are written before they would be placed in the Checkpoint queue for later writing, they are no longer dirty and do not show up in the number of dirty buffers at the beginning of the next checkpoint.

A general rule of thumb, if the number of buffers flushed is higher than 10, increase the cluster size, or increase the number of page writers, or increase disk write capacity.  For further advice refer to Article:
Workaround
Notes
Last Modified Date11/20/2020 7:36 AM
Attachment 
Files
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.