等待事件之log file sync(原理篇)

一、基本概念

        当进程执行 commit rollback 时, LGWR 后台进程会将 redo log buffer(sga) 中刚写入的日志记录写入至 online redo logfile ; 从前台进程命令发出到返回执行结果的这个时间内出现的等待称之为 log file sync log file sycn是oracle里最普遍的等待事件之一,一般log file sycn的等待时间都非常短, 在正常情况下log file sync平均等待时间应该小于10ms

二、过程原理

         
             
    

        上图为log file sync产生的过程:

  √ 前台进程,也就是用户进程发起一个提交或者回滚的操作。

  √ 前台进程会通知Lgwr去写日志。

  √ LGWR会进行物理写的系统调用。

  √ 物理写调用完成。

  √ LGWR通知前台进程写入操作已完成。

  √ 前台进程显示提交已经完成。
       1-6为一个完整的log file sync过程,从foreground process提交一个commit/rollback开始到commit 完成。期间3-4是log file parallel write的过程(主要是真正的物理io时间)。所以log file sync包含了log file parallel write这个过程。正常情况下,3-4也就是说log file parallel write应该是整个log file sync过程中最耗时的,如下图所示
            


        但在实际环境中,1-6各环节受到的影响因素不仅仅来自于I/O,下面的图以cpu资源紧张为前提假设,给出了各阶段的执行时长
            

我们可以看到,上述流程中的4个环节都涉及到CPU的调度,如果在整个事务commit的过程中,系统CPU出现极度紧张,那么这可能会导致LGWR进程无法获得CPU,会进行排队等待,显然,这势必将导致log file sync或log file parallel write等待的升高。

        涉及到log file sync的一些案例
        案例一:http://www.htz.pw/2014/10/21/%E4%B8%80%E6%AC%A1log-file-sync%E7%AD%89%E5%BE%85%E4%BA%8B%E4%BB%B6%E5%88%86%E6%9E%90.html
        案例二:http://www.killdb.com/2014/04/20/log-file-sync-%E7%AD%89%E5%BE%85%E8%B6%85%E9%AB%98%E4%B8%80%E4%BE%8B%E5%AD%90.html
        案例三:http://www.dboracle.com/archivers/%E4%B8%80%E6%AC%A1%E8%AF%A1%E5%BC%82%E7%9A%84log-file-sync%E5%88%86%E6%9E%90%E5%A4%84%E7%90%86.html
    

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

转载于:http://blog.itpub.net/29319055/viewspace-2080574/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值