ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Log File Sync等待的背后

Log File Sync等待的背后

原创 Linux操作系统 作者:wei-xh 时间:2012-06-28 12:38:16 0 删除 编辑
Log File Sync:
当看到log file sync等待时候,狠多人会有这样的担心,我的数据库正在等待写日志,是不是写入的效率存在问题。这样的担心,也就是把前台的等待log file sync都归因于后台log file parallel write的写问题,写太慢了!!!!
可是Log File Sync比较复杂,看看列出的几点:
1) 当你的session发出commit命令后,通知lgwr去写,但是这个时候lgwr可能已经在写了(不是当前SESSION触发的),那么lgwr在响应你的commit之前需要把当前手头的工作做完毕,然后返回操作系统的等待队列等待CPU。这个过程中,还会存在一些latch获取和写完成后通知一些前台进程告诉他们写完毕。这些都是时间缺口。
2) 如果LGWR没在写,在你的session发出commit后,通知LGWR去写,到LGWR真正开始running之前,也会有一个时间的缺口:post的时间+lgwr start running
3) LGWR在接受到写命令,开始写之前,还需要check下,是不是要写的范围里,存在“空洞”,因为要写的日志范围里,可能存在某些SESSION正在往LOG BUFFER里COPY日志,还没COPY完成的情况,如果存在这种情况,LGWR需要等待。
4) 即使LGWR在接收到写命令,那也不意味着它立即就可以去写了,它只是一个操作系统的进程,它接受到命令后,只是返回到操作系统的运行队列里,等待CPU调用。这里仍然可能会存在一个时间缺口。特别是,如果你的系统存在大量的进程。MOS上有通过操作系统命令(一般是renice)调整LGWR进程的运行优先级来解决这个问题的。
因此如果你的系统Log File Sync时间比较长,并不一定意味着写日志的时间长,也可能是你的操作系统load过大或者运行的进程数太多等原因。

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

请登录后发表评论 登录
全部评论
Oracle ACE组成员,DBGeeK用户组发起人。曾在DTCC、ORACLE技术嘉年华、Gdevops等公开场合做过数据库技术专题分享,2017年应Oracle邀请在世界最大的数据库会议OOW上做技术分享。组织翻译了《拨云见日,解密Oracle ASM内核》一书。

注册时间:2009-07-04

  • 博文量
    422
  • 访问量
    2278588