重庆思庄Oracle、、PostgreSQL、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 268|回复: 0

[Oracle] log file parallel write等待事件

[复制链接]
发表于 2025-5-25 10:49:21 | 显示全部楼层 |阅读模式
如何发生的

为了冗余考虑,redo log组一般都会有多个成员,log file parallel write 中的parallel指的是并行的写入多个redo log成员文件
log file parallel write 指的是LGWR进程并行的将log buffer中的内容写入redo log,在全部写入到所有redo log前的等待计入log file parallel write 等待事件
20785683284b98bf40.png
可以看到该数据库有是单实例,有3个日志组,每个组有2个成员日志文件

log file sync(LFS)和log file parallel write(LFPW)对比

通过上面的定义我们知道LFS和LFPW都是等待LGWR进程完成I/O操作

LFS是用户进程等待LGWR进程完成I/O操作
LFPW是LGWR进程本身等待其I/O操作完成

例如有五个用户进程同时commit,每个完成耗时都是10ms

则LFS次数增加五次,LFS的wait time 增加50ms
而LFPW次数增加一次,LFPW的wait time增加10ms

注意LGWR 进行写日志动作原因有很多,用户commit只是其中一个

1.每三秒钟
2.每一次commit/rollback
3.当其 1/3满的时候,这个由_LOG_IO_SIZE参数控制
4.当其达到1M的时候

查看LGWR进程等待情况(整体)

通过上面的讲解我们知道LGWR事件只由LWGR进程产生,我们可以查询

select sid, event, time_waited, time_waited_micro
from v$session_event
where sid in (select sid from v$session where program like '%LGWR%')
order by 3
46512683284fa6c26d.png

通过上图我们可以看到LGWR进程主要的等待在哪里

rdbms ipc message 表示LGWR正在等待写redo log,表示其处于空闲状态,不必理会
log file single/parallel write 即所说的LGWR写redo 文件
其他的暂不讨论,大家可自行搜索

注意该视图中的数字是从实例启动起来的累计值

查询当前LGWR进程状态(实时)

select a.*
from v$Session_wait a, v$session b
where a.sid = b.sid
  and b.program like '%LGWR%';

通过上图我们发现当前LGWR进程处于空闲状态,如发现为log file write等说明目前 LGWR进程正在繁忙

如等待事件为log file parallel write 则其参数意义如下

P1:需要写入的redo log的数量,即日志文件组的成员数量
P2: 需要写入每个redo log 成员的redo block数
P3:写入完成需要进行的I/O请求次数

原因及改善

如果log file sync 等待事件占有过多的CPU时间,我们就需要注意了

1.低速的磁盘可能会导致LGWR进程写文件较慢从而导致log file sync等待,我们可以简单的通过avg waits 来判断,10ms是期望的数值,30ms也是可以接受的,如果大于这个数值则需要放到高速的磁盘
2.减少日志组中成员的数量可减少I/O此时从而减少log file parallel write等待
3.设置合适大小的redo log file,这点可以通过检查redo log 切换的频率查看是否正常,具体脚本见下面
4.服务器CPU内存资源不足会导致进程相应缓慢,同样会增加log file sync等待,所以在调优时首先保证系统资源充足
5.过大的log buffer 大小,log buffer过大可能导致刷新过于次数过低,从而导致单次刷新过慢,关于log buffer的调优可关注后续内容
6.过多的commit操作,通过上面我们知道每次commit操作都会导致LGWR写操作,如commit过多则该等待则会明显的上升


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2025-7-10 09:22 , Processed in 0.131316 second(s), 24 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表