暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

LGWR worker group

原创 ZXM 2024-11-24
443

LGWR worker group 是12C的新特性,默认是启动的状态。也可以叫做"LGWR slave group" or “multiple Log Writers.”

​ 当处于启动状态时,至少会生成出两个后台进程lg00,lg01。该特性由_use_single_log_writer 参数控制,可选的值为TRUE,FALSE,ADAPTIVE(默认值)。设置为 ADAPTIVE 或 FALSE 时为启动状态。

_use_single_log_writer 为 false时

image.png

_use_single_log_writer 为 ADPTIVE时

image.png

_use_single_log_writer 为 TRUE时
image.png

当启用LGWR worker group 新特性时,会衍生出下面几个等待事件

LGWR intra group sync

LGWR worker group ordering

LGWR any worker group

LGWR intra group IO completion

LGWR all worker groups
下面使用10046和strace 来跟踪一下LGWR及其附属进程。

LGWR all worker groups和LGWR any worker group 是LGWR进程产生的等待事件

[oracle@node1 trace]$ cat racdb1_lgwr_87082.trc | grep "LGWR any worker group" |wc -l 14308 [oracle@node1 trace]$ cat racdb1_lgwr_87082.trc | grep "LGWR all worker group" |wc -l 3726

LGWR worker group ordering 是LGWR的附属进程LGnn产生的等待事件

[oracle@node1 trace]$ cat racdb1_lg00_87086.trc | grep "LGWR worker group ordering" |wc -l 1383

image.png
黄色为LGWR strace 绿色LG00

当所有进程都空闲的情况下,当前台进程发出commit命令后,LGWR进程被唤醒,结束rdbms ipc message。

然后调用LG00 进行redo落盘。

LG00 被唤醒后结束LGWR worker group idle,使用io_submit 进行IO提交(从日志中可以看出是异步I/O)。随后经历了ASM IO for non-blocking poll 等待(当redo在ASM中时,会出现该等待事件。ASM 的一步IO)。io_getevents一步IO完成,从而完成了log file parallel write。
image.png
当前台进程发出commit命令后,然后发出写任务。发现没有空闲的worker,陷入LGWR any worker group等待,当出现空闲进程时。唤醒LG00,使用一步IO进行redo日志落盘。

该特性可能会降低LGWR的性能,从而影响commit。

当出现该问题时,可以将_use_single_log_writer 设置为true 关闭新特性。
note:

11G中LGWR空闲状态
image.png
19C中LGWR及附属进程的空闲状态
image.png

公众号:ZXM的学习笔记
墨天伦:https://www.modb.pro/u/15528

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论