"log file sync"等待事件-2

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: “log file sync”有三个参数:P1 = buffer#P2 = 未使用P3 = 未使用buffer#这个buffer编号(在日志缓冲区中)的所有改变必须刷新到磁盘,写操作的完成保证了交易COMMIT的执行,即使实例crash也会保证COMMIT。

“log file sync”有三个参数:

P1 = buffer#

P2 = 未使用

P3 = 未使用

buffer#

这个buffer编号(在日志缓冲区中)的所有改变必须刷新到磁盘,写操作的完成保证了交易COMMIT的执行,即使实例crash也会保证COMMIT。因此LGWR的等待就是刷新这个buffer#。


等待时间:

这种等待完全依赖于LGWR写出所有必要的redo块,确保完成后返回给用户session。等待时间包括了日志缓冲写操作和提交操作。等待的时候,每秒都会增加序列号。


查找阻塞的块:

如果一个session持续等待同一个buffer#,那么SEQ#列应该每秒都会增加。否则本地session会出现等待事件超时的问题。如果SEQ#列持续增长,那么阻塞进程就是LGWR进程。检查LGWR正在等待哪些日志块的完成因而速度缓慢。


系统级等待:

系统级”log file sync“的等待参数显示了等待COMMIT完成花费的时间。如果这种等待非常明显,那么LGWR快速完整地刷出redo的能力就会有问题。”user commits“统计数据显示COMMIT的次数。


降低等待时间:

为了降低“log file sync”的等待,有几种常用调优的技巧:

>调优LGWR以能满足刷新到磁盘的良好性能,例如不用将redo日志存储到RAID5。

>如果有许多短时间的交易,看看是否可以进行批量交易,这样可以有更少的COMMIT操作。每次COMMIT都需要确认相关的redo信息是否刷新到磁盘。尽管commit是由Oracle内部处理的,但是通过批量交易可以降低commit的总体次数,达到一个非常好的效果。

>是否处理能够使用COMMIT NOWAIT选项(但在使用前需要理解他的语意)。

>确认任何交易使用NOLOGGING/UNRECOVERABLE选项是否安全。

>确认redo日志是否足够大。扩大redo日志,以保证日志切换可以控制在15到20分钟之间。


对于降低LOG FILE SYNC等待时间更加详细的分析可以参考如下:

LOG FILE SYNC等待的总时间可能会被切分为若干子节或组件。

如果确保上面提到的一些调优技巧已经使用了但你的系统仍旧显示较高的“log file sync”等待时间,那么你应该将总等待时间切分为单个的组件,然后调优这些组件,组成一个最长用时。


log file sync等待可能被切分为以下组件:

1. 唤醒已停止工作的LGWR。

2. LGWR收集需要写入磁盘与返回的IO。

3. 日志写IO完成的时间。

4. LGWR提交处理IO。

5. 写操作完成后LGWR提交给前台/用户session。

6. 唤醒前台/用户session。


基于log file sync切分后的组件的一些调优建议:

2和3累积在"redo write time"统计信息中。(例如Statspack和AWR的统计信息节中)

3是“log file parallel write”等待事件。

5和6随着系统负载的增加可能变得非常明显。这是因为即使已经返回请求到前台进程,仍可能需要花费OS时间进行调度执行。需要从操作系统级别的监控。


Data Guard的观点:

对于Data Guard,具有异步传输与默认的COMMIT WAIT功能,以上的调优步骤仍可以使用,除了第三步也包括对于备机redo日志的网络写与RFS/redo写的用时。

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
6月前
|
Kubernetes Perl 容器
K8s查看集群 状态事件描述以及Pod日志信息
K8s查看集群 状态事件描述以及Pod日志信息
230 3
|
6月前
|
小程序
【小程序】报错:no such file or directory, access ‘wxfile://usr/miniprogramLog/log2‘
【小程序】报错:no such file or directory, access ‘wxfile://usr/miniprogramLog/log2‘
1241 0
|
3月前
|
安全 网络安全 数据安全/隐私保护
auth required pam_tally2.so file=/var/log/tallylog onerr=fail deny=3 unlock_time=300 even_deny_root root_unlock_time=300 什么作用?
【8月更文挑战第2天】auth required pam_tally2.so file=/var/log/tallylog onerr=fail deny=3 unlock_time=300 even_deny_root root_unlock_time=300 什么作用?
48 1
|
3月前
|
安全 网络安全 数据安全/隐私保护
auth required pam_tally2.so file=/var/log/tallylog onerr=fail deny=3 unlock_time=300 even_deny_root root_unlock_time=300 什么作用
【8月更文挑战第14天】auth required pam_tally2.so file=/var/log/tallylog onerr=fail deny=3 unlock_time=300 even_deny_root root_unlock_time=300 什么作用
69 0
|
4月前
|
关系型数据库 MySQL 数据库
MySQL 启动日志报错: File /mysql-bin.index not found (Errcode: 13 - Permission denied)
MySQL 启动日志报错: File /mysql-bin.index not found (Errcode: 13 - Permission denied)
215 2
|
6月前
|
存储 关系型数据库 数据库
关系型数据库文件方式存储LOG FILE(日志文件)
【5月更文挑战第11天】关系型数据库文件方式存储LOG FILE(日志文件)
191 1
|
6月前
|
存储 SQL Serverless
Serverless 应用引擎常见问题之应用下的【应用事件】以及企业级特性下的【事件中心】没有日志如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
117 0
|
6月前
|
运维 应用服务中间件 网络安全
利于群晖的File Station+SFTP实现第三方人员快速获取服务器应用日志
利于群晖的File Station+SFTP实现第三方人员快速获取服务器应用日志
221 0
|
6月前
|
存储 JSON 运维
【运维】Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
【运维】Powershell 服务器系统管理信息总结(进程、线程、磁盘、内存、网络、CPU、持续运行时间、系统账户、日志事件)
150 0
|
2天前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
66 30
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板