ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle latch_自译文_(1)

oracle latch_自译文_(1)

原创 Linux操作系统 作者:wisdomone1 时间:2010-04-02 14:09:52 0 删除 编辑
latch学习

低级的机制,用于串行级访问控制对于比如cache buffer header等内存结构

1,仅仅是一种简单的内存结构
2,通常大小在100-200b
3,被封装成一个个小型的状态对象结构
4,固定在固定sga(父latch)或者共享池中
5,它是通过硬件原子cas(比较与交换)的指令来实现,比如在intel平台是lock CMPXCHG
6,从oracle8后开始共享
    用于一些高级ops特性
    比如,当检查buffer chain时,用于cache buffers chains latch的获取



什么是latch 竞争
我想得到一个latch,但此时已经有人在使用或占用它了
 以上情况可分两种分支:
    如果gets(请求)是采用非等待模式,返回给调用者失败信息
    如果gets(请求)采用乐意等待模式,继续尝试gets

多次尝试gets,这种情况就叫spinning


仍旧得不到latch,就沉睡一些时间
 在latch 世界中,10ms是一个相当长的时间
 _max_exponential_sleep
 _max_sleep_holding_latch


可能被释放latch的进程所唤醒
   不用于所有的latch,因为它需要latch waiter列表的扫描
   通过使用_latch_wait_posting参数来控制


v$session_event

v$session_wait

v$latch/v$latch_misses

v$latchholder


latch troubleshoting

1, 确认哪些会话有问题
2,找到会话等待最多的latch是什么
3,识别出竞争中相关的子latch
4,确认kernel码层次等待latch获取是已经完成了吗
    statspack,awr or v$latch_misses
    x$ksuprlat or x$ksupr if problem with some sessions




kgx=kernel generic mutex

自oracle10.2引入
   从物理上像latch(一块或一片内存)
      更加轻量级
      更小

能内嵌到其它结构中(KGL HD)

客户端可以定义很灵活的spin/yield/wait策略

不计算gets,spingets,yields,仅仅只统计出来waits


kgx mutexes不是os mutexes啊,切记哟


library cache的mutexes
用于保护v$sqlstats buckets
   oradebug dump cursor_stats 1

用于pinning library cache cursors和父级检验(查)
   假如_kks_use_mutex_pin=true(默认从10.2.0.2)
   oradebug dump librarycache level 10

在11g中mutexes用于代替library cache latches
   11g中有131072 mutexes代替67之多的library cache latches

在11g中知名(已知)的mutex 类型:
   cursor parent
   cursor pin
   cursor stat
   library cache
   hash table


v$session_wait
         mutex睡眠次数很好表示出.p1,p2,p3的值表示在处于竞争状态的library cache 对象的hash value是什么,持有mutex的会话是哪个?
         v$event_name和v$session_wait的text列有p1,p2,p3含义的描述
  有如下一些等待事件:
     cursor:mutex S
     cursor:mutex X
     library cache:mutex S
     library cache:mutex X


v$mutex_sleep
   显示等待时间,以及对于各种类型的mutex和位置的睡眠次数
v$mutex_sleep_history
   显示最近每个mutex睡眠的发生情况
   根据每个可循环使用的buffer,会有更加详细的内容


systemstate dumps
   10



   
   
 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/9240380/viewspace-631161/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: ibm websphere简介
请登录后发表评论 登录
全部评论
提供针对oracle初学者及进阶的数据库培训,欢迎大家咨询: 微信: wisdomone 微信公众号: lovedb 工作经历: 中国普天 北京科蓝 北京云和恩墨 北京神州新桥

注册时间:2008-04-04

  • 博文量
    2189
  • 访问量
    12690167