创建博客 登录  
 加关注
   显示下一条  |  关闭

风清云淡逍遥游

IT life

 
 
 

日志

 
 

Oracle10gR2中的Mutex竞争的案例  

2010-11-11 21:50:46|  分类: 默认分类 |  标签: |字号 订阅

Oracle10gR2中的Mutex竞争的案例
作者:eygle | English Version 【转载时请以超链接形式标明文章出处和作者信息及本声明
链接:http://www.eygle.com/archives/2008/10/oracle10gr2_mute_bug.html
站内相关文章|Related Articles
Oracle KSL Latch 管理层 与 Latch管理
数据字典视图之:V$TYPE_SIZE 结构
数据字典视图之:V$LATCH_CHILDREN 结构
CURSOR_SPACE_FOR_TIME 参数废弃
关于Mutex的笔记
最近有客户在Oracle10gR2上遇到了Mutex竞争的问题。
Mutex是Oracle在Oracle10g中引入的串行机制,逐渐会用来替代一些存在性能问题的Latch。
和Latch相比,一个Mutex Get大约仅需要30~35个指令,而Latch Get则需要大约150~200个指令,同时在大小上,每个Mutex仅占用大约16 Bytes空间,而一个latch在10gR2中要占用大约112 Bytes空间。
Mutex首先替代了Library Cache Latch以及Library Cache Pin,在Oracle 10.2.0.2上通过隐含参数_kks_use_mutex_pin的调整可以限制是否使用Mutex机制来实现Cursor Pin:
SQL> set linesize 120
SQL> col name for a30
SQL> col value for a20
SQL> col describ for a60
SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.ksppdesc describ
  2    FROM SYS.x$ksppi x, SYS.x$ksppcv y
  3  WHERE x.indx = y.indx
  4    AND x.ksppinm LIKE '%&par%'
  5  /
Enter value for par: mutex
old  4:    AND x.ksppinm LIKE '%&par%'
new  4:    AND x.ksppinm LIKE '%mutex%'
NAME                          VALUE                DESCRIB
------------------------------ -------------------- ------------------------------------------------------------
_kks_use_mutex_pin            TRUE                Turning on this will make KKS use mutex for cursor pins.
在新的Mutex Pins机制下,以下等待事件可能变得常见:
cursor: mutex S
cursor: mutex X
cursor: pin S
cursor: pin S wait on X
cursor: pin X
由于Mutex使用CAS(Compare and Swap)机制,所以在不支持CAS的HP Unix平台上就可能出现CPU消耗过高的情况。
这作为一个Bug在10.2.0.4版本中被修正。
  评论这张
转发至微博
转发至微博
0   分享到:        
阅读(37)| 评论(0)| 引用 (0) |举报

历史上的今天

相关文章

最近读者

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--相关文章--> <#--历史上的今天--> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2012