Log File Sync/Log File Parallel Write (单实例)

1 等待事件说明

当用户执行完事务(insert插入数据)执行commit/rollbackup命令后,Oracle后台LGWR进程需要redo log buffer -> online redo log files,写入后返回Commit complete/Rollback complete.。这个过程就会形成Log File Sync等待事件。
在这里插入图片描述
在这里插入图片描述

Log File Parallel Write是LGWR进程开始执行到结束这个过程的等待事件。
在这里插入图片描述

2 模拟该等待事件

2.1 单次

在这里插入图片描述
查不到等待事件

2.2 多次

drop table sync;
create table sync (x int);
begin
    for i in 1 .. 100000
    loop
        insert into sync values (i);
        commit work write wait immediate;
    end loop;
end;
/

在这里插入图片描述

在这里插入图片描述

drop table sync;
create table sync (x int);
begin
    for i in 1 .. 100000
    loop
        insert into sync values (i);
        commit;
    end loop;
end;
/

commit_write、commit_logging、commit_wait

drop table baipx;
create table baipx as select * from dba_objects;
begin
    for i in 1 .. 100
    loop
        insert into baipx select * from baipx;
        commit;
    end loop;
end;
/

在这里插入图片描述

2.3 别的等待事件

log file sequential read
在这里插入图片描述
在这里插入图片描述
log file parallel write
在这里插入图片描述

在这里插入图片描述

3 原因

数据库层面

  1. 提交或者回滚次数过于频繁 -> 查看统计信息(统计user commits,user rollback次数)
  2. 日志缓冲区过大
  3. redo logfile过少

系统层面
结合log file parallel write等待事件来判断

  1. I/O缓慢导致LGWR进程写日志慢 (log file sync ≈ log file parallel write)
  2. CPU使用率过高 (log file sync > log file parallel write)

4 解决方案

找到相应原因进行解决。
数据库层面

  1. 提交或者回滚次数过于频繁 -> 批量提交
  2. 日志缓冲区过大
  3. redo logfile过少

系统层面

  1. I/O缓慢导致LGWR进程写日志慢 -> 使用性能好的盘
  2. CPU使用率过高

5 学习链接

log file switch (日志切换)
log file sync( 日志文件同步)
Oracle log file sync 原理详解
频繁commit导致的log file sync的诊断

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
File "/home/zrb/anaconda3/envs/open-mmlab/bin/mmskl", line 7, in <module> exec(compile(f.read(), __file__, 'exec')) File "/home/zrb/mmskeleton/tools/mmskl", line 123, in <module> main() File "/home/zrb/mmskeleton/tools/mmskl", line 117, in main call_obj(**cfg.processor_cfg) File "/home/zrb/mmskeleton/mmskeleton/utils/importer.py", line 24, in call_obj return import_obj(type)(**kwargs) File "/home/zrb/mmskeleton/mmskeleton/processor/recognition.py", line 47, in test output = model(data) File "/home/zrb/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/nn/modules/module.py", line 547, in __call__ result = self.forward(*input, **kwargs) File "/home/zrb/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/nn/parallel/data_parallel.py", line 150, in forward return self.module(*inputs[0], **kwargs[0]) File "/home/zrb/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/nn/modules/module.py", line 547, in __call__ result = self.forward(*input, **kwargs) File "/home/zrb/mmskeleton/mmskeleton/models/backbones/st_gcn_aaai18.py", line 94, in forward x = self.data_bn(x) File "/home/zrb/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/nn/modules/module.py", line 547, in __call__ result = self.forward(*input, **kwargs) File "/home/zrb/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/nn/modules/batchnorm.py", line 81, in forward exponential_average_factor, self.eps) File "/home/zrb/anaconda3/envs/open-mmlab/lib/python3.7/site-packages/torch/nn/functional.py", line 1656, in batch_norm training, momentum, eps, torch.backends.cudnn.enabled RuntimeError: running_mean should contain 60 elements not 54
最新发布
07-25

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值