The Free Buffer Waits alarm occurs when free buffer waits (as a proportion of total waits) exceeds a threshold.
Free buffer waits occur when a session wants to read a data block from a database file on disk into the buffer cache. If there are no unmodified (or clean) blocks in the buffer cache, the session has to wait for the database writer process to write modified (or dirty) blocks to disk in order for free buffers to be made available. Normally, the database writer is constantly writing dirty buffers to disk, so this event should rarely occur. When it does occur, it is usually due to one of the following reasons:
Reason | Description |
---|---|
Untuned disk layout |
If datafiles are not spread evenly across disk devices, then a single disk may form a bottleneck to both read and write performance. When this happens, the database writer may not be able to clear dirty blocks from this device as rapidly as they are created. |
Untuned database writers |
To write efficiently to multiple disk devices, it is essential that you either configure multiple database writers or implement asynchronous or list I/O. This helps the database writer keep up with changes to the buffer cache. |
Untuned sorts |
In most circumstances, sort direct writes are enabled by default, preventing a flooded buffer cache from causing other sessions to encounter free buffer waits. |
© ALL RIGHTS RESERVED. 使用条款 隐私 Cookie Preference Center