Sie sind auf Seite 1von 3

gc buffer busy acquire vs release Oracle database internals by Riyaj

http://orainternals.wordpress.com/2012/04/19/gc-buffer-busy-acquire-vs-...

Oracle database internals by Riyaj


Discussions about Oracle performance tuning, RAC, Oracle internal & E-business suite.

gc buffer busy acquire vs release


Posted by Riyaj Shamsudeen on April 19, 2012 Last week (March 2012), I was conducting Advanced RAC Training online. During the class, I was recreating a gc buer busy waits to explain the concepts and methods to troubleshoot the issue. Denitions Lets dene these events rst. Event gc buer busy event means that a session is trying to access a buer,but there is an open request for Global cache lock for that block already, and so, the session must wait for the GC lock request to complete before proceeding. This wait is instrumented as gc buer busy event. From 11g onwards, this wait event is split in to gc buer busy acquire and gc buer busy release. An a endee asked me to show the dierentiation between these two wait events. Fortunately, we had a problem with LGWR writes and we were able to inspect the waits with much clarity during the class. Remember that Global cache enqueues are considered to be owned by an instance. From 11g onwards, gc buer busy event dierentiated between two cases: 1. If existing GC open request originated from the local instance, then current session will wait for gc buer busy acquire. Essentially, current process is waiting for another process in the local instance to acquire GC lock, on behalf of the local instance. Once GC lock is acquired, current process can access that buer without additional GC processing (if the lock is acquired in a compatible mode). 2. If existing GC open request originated from a remote instance, then current session will wait for gc buer busy release event. In this case session is waiting for another remote session (hence another instance) to release the GC lock, so that local instance can acquire buer. Example Following output should show the dierentiation with much clarity. Notice that SID 53, instance is has open GC request for the block File #10, block #56051(line #1 in the output) and the session is waiting for gc current request (which is a placeholder event, btw). All processes requesting an access to this block in instance 1 waits for gc buer busy acquire. Similarly, all processes waiting for the block access in instance #2 is waiting for gc buer busy release. Essentially, instance 1 sessions are waiting for local instance to acquire the GC lock, and instance 2 sessions are waiting for instance 1 to release the GC lock. Of course, LGWR is completely stuck in this case and so, Global cache layer is also nearly frozen.

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) 1 of 3

3/25/2013 6:58 PM

gc buffer busy acquire vs release Oracle database internals by Riyaj

http://orainternals.wordpress.com/2012/04/19/gc-buffer-busy-acquire-vs-...

INST_ID SID EVENT ------- ------ ----------------------1 53 gc current request 1 40 gc buffer busy acquire 1 60 gc buffer busy acquire 1 59 gc buffer busy acquire 1 58 gc buffer busy acquire 1 56 gc buffer busy acquire 1 55 gc buffer busy acquire 1 54 gc buffer busy acquire 1 53 gc buffer busy acquire 1 48 gc buffer busy acquire 2 1 gc buffer busy release 2 68 gc buffer busy release 2 65 gc buffer busy release 2 64 gc buffer busy release 2 69 gc buffer busy release 2 57 gc buffer busy release 2 43 gc buffer busy release 2 36 gc buffer busy release 2 47 log file sync

USERNAME ---------SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS SYS

STATE -------WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING WAITING

WIS P1_P2_P3_TEXT ------------------------------26 file# 10-block# 560651-id# 16777217 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 file# 10-block# 560651-class# 1 22 buffer# 4450-sync scn 30839721- 0

In summary, this dierentiation is useful. In most cases, gc buer busy is a symptom and so, in this example, I would review instance 1 closely since the waits are gc buer busy acquire in that instance and most probably, I would quickly start to diagnose session with sid=53 @inst=1 This entry was posted on April 19, 2012 at 8:03 pm and is led under 11g, Oracle database internals, Performance tuning, RAC. Tagged: gc buer busy, gc buer busy acquire, gc buer busy release, oracle performance, RAC performance. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

6 Responses to gc buffer busy acquire vs release

1.

Sam said
July 26, 2012 at 5:20 am very nice explanation thanks Reply

2.

Bhaskar said
October 8, 2012 at 10:20 am Good explanation Thanks Reply

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) 2 of 3

3/25/2013 6:58 PM

gc buffer busy acquire vs release Oracle database internals by Riyaj

http://orainternals.wordpress.com/2012/04/19/gc-buffer-busy-acquire-vs-...

3.

Prashant Nair said


December 6, 2012 at 6:20 pm Great Explanation.. Thanks Reply

4.

swapnil mhetre said


December 21, 2012 at 3:49 pm Good Explanation. Thanks Reply

5.

sravya said
January 10, 2013 at 7:20 pm Good explanation sir!! Thanks Reply

6.

Bhavani said
February 27, 2013 at 5:53 pm very useful information and nice explanation Reply

Next Advanced RAC Training class scheduled. My COLLABORATE 12-IOUG sessions

Blog at WordPress.com. | Theme: Customized Andreas09 by Andreas Viklund. Follow

Follow Oracle database internals by Riyaj


Powered by WordPress.com

Print to PDF without this message by purchasing novaPDF (http://www.novapdf.com/) 3 of 3

3/25/2013 6:58 PM

Das könnte Ihnen auch gefallen