Re: Fun with WAIT Event "library cache: mutex X"

  • From: Gaja Krishna Vaidyanatha <gajav@xxxxxxxxx>
  • To: "ChrisDavid.Taylor@xxxxxxxxxxxxxxx" <ChrisDavid.Taylor@xxxxxxxxxxxxxxx>, "'oracle-l@xxxxxxxxxxxxx'" <oracle-l@xxxxxxxxxxxxx>
  • Date: Thu, 8 Dec 2011 10:24:37 -0800 (PST)

Hi Chris,
Just curious - are you using automatic SGA memory management? 

In my humble experience, I have seen the mutex waits that you refer to when 
resize operations happen at bad times (basically stealing away from the shared 
pool to give to the database buffer cache more memory because of a spurt of 
high I/O requests). In those cases, I have actually turned off automatic SGA 
memory management in exchange of stability and consistency. Not to mention the 
problem just goes away. I am big believer in automating the appropriate 
components in my database (thank you Oracle for automating among other 
components - UNDO :) ).

But, I am still old school when it comes to buffer cache sizing, shared pool & 
other pools sizing. I believe it should be part of a DBA's job and should be 
automated ONLY in applications/databases that demonstrate consistent, 
predictable and static behavior in workloads. For more dynamic and inconsistent 
workloads, I personally would go with manual memory settings. It is worthwhile 
incurring the additional cost of allocating more memory for the required 
structures and gain stability and consistency in return. Plus, the CPU overhead 
of MMAN (if and where relevant) can be avoided.



Gaja Krishna Vaidyanatha,
CEO & Founder, DBPerfMan LLC

Phone - +1-650-743-6060 
Insights:Tales of the Oak Table 
Co-author:Oracle Performance Tuning 101 

 From: "Taylor, Chris David" <ChrisDavid.Taylor@xxxxxxxxxxxxxxx>
To: "'oracle-l@xxxxxxxxxxxxx'" <oracle-l@xxxxxxxxxxxxx> 
Sent: Thursday, December 8, 2011 8:45 AM
Subject: Fun with WAIT Event "library cache: mutex X"
I'm running Patch 10 on Windows x64 and I have a pl/sql procedure that 
is rather simple, but kept erroring out after some time with an out memory 
So, I decided to look and see what it is doing and it is encountering the 
"library cache: mutex X" event.

Browing Oracle Support, I found the note about it and it says:

*   "P3 = "where" = location in code (internal identifier) where mutex is being 
waited for
@The meaning of the code for "where" can be found by looking in kgl0.h for 
entries with the prefix ""kglml_XXX".  For example, if P3=2, then it 
corresponds to "kglml_kglget2".  You can then search source code for this 
symbol to see where the mutex is acquired.

Well, that's not very helpful to me since I don't have access to the source 
code :)  I understand that the engineers can use it.

Long story short, I decided to download the patchset.

It is only *4 GIGABYTES*.  I'm getting about 170k download speed on my work 
network so......

Chris Taylor
Sr. Oracle DBA
Ingram Barge Company
Nashville, TN 37205

"Quality is never an accident; it is always the result of intelligent effort."
-- John Ruskin (English Writer 1819-1900)

CONFIDENTIALITY NOTICE: This e-mail and any attachments are confidential and 
may also be privileged. If you are not the named recipient, please notify the 
sender immediately and delete the contents of this message without disclosing 
the contents to anyone, using them for any purpose, or storing or copying the 
information on any medium.



Other related posts: