Free buffer waits (%) (2024)

Description

This event occurs mainly when a server process is trying to read a new buffer into the buffer cache but too many buffers are either pinned or dirty and thus unavailable for reuse. The session posts to DBWR then waits for DBWR to create free buffers by writing out dirty buffers to disk.

DBWR may not be keeping up with writing dirty buffers in the following situations:

  • The I/O system is slow.

  • There are resources it is waiting for, such as latches.

  • The buffer cache is so small that DBWR spends most of it's time cleaning out buffers for server processes.

  • The buffer cache is so big that one DBWR process is not enough to free enough buffers in the cache to satisfy requests.

Metric Summary

The rest of the information in this section is only valid for this metric when it appears in either the Enterprise Manager Grid Control or the Enterprise Manager Database Control (if applicable).

The following table shows how often the metric's value is collected and compared against the default thresholds. The 'Consecutive Number of Occurrences Preceding Notification' column indicates the consecutive number of times the comparison against thresholds should hold TRUE before an alert is generated.

Target Version

Evaluation and Collection Frequency

Upload Frequency

Operator

Default Warning Threshold

Default Critical Threshold

Consecutive Number of Occurrences Preceding Notification

Alert Text

pre-10g

Every Minute

After Every Sample

>

20

Not Defined

3

%value%%% of service time is spent waiting on the 'free buffer waits' event.

Data Source

(DeltaFreeBufferWaitsTime/DeltaServiceTime)*100 where:

  • DeltaFreeBufferWaitsTime: difference of 'sum of time waited for sessions of foreground processes on the 'free buffer waits' event' between sample end and start

  • DeltaServiceTime: difference of 'sum of time waited for sessions of foreground processes on events not in IdleEvents + sum of 'CPU used when call started' for sessions of foreground processes' between sample end and start

See Idle Events

User Action

Sometimes the easy solution is to increase the buffer cache to allow for more free blocks. This works in many cases, but if the application is generating a sustained amount of dirty blocks then increasing the buffer cache may only help or delay the problem but not solve it.

If this event occurs frequently, examine the session waits for DBWR to see whether there is anything delaying DBWR.

Run this query to see if the I/O is evenly distributed.

SELECT name, phyrds, phywrts FROM v$filestat a, v$datafile b WHERE a.file# = b.file#

Also look for files having full table scans, using this query:

 SELECT name, phyrds, phyblkrd, phywrts FROM v$filestat a, v$datafile b WHERE a.file# = b.file# AND phyrds != phyblkrd

Related Topics

About Alerts

About the Metric Detail Page

Editing Thresholds

Understanding Line Charts

Copyright © 1996, 2009, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates.
Other names may be trademarks of their respective owners.

Free buffer waits (%) (2024)
Top Articles
Latest Posts
Article information

Author: Merrill Bechtelar CPA

Last Updated:

Views: 6668

Rating: 5 / 5 (70 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Merrill Bechtelar CPA

Birthday: 1996-05-19

Address: Apt. 114 873 White Lodge, Libbyfurt, CA 93006

Phone: +5983010455207

Job: Legacy Representative

Hobby: Blacksmithing, Urban exploration, Sudoku, Slacklining, Creative writing, Community, Letterboxing

Introduction: My name is Merrill Bechtelar CPA, I am a clean, agreeable, glorious, magnificent, witty, enchanting, comfortable person who loves writing and wants to share my knowledge and understanding with you.