log file parallel write概念介绍

log file parallel write 事件是LGWR进程专属的等待事件,发生在LGWR将日志缓冲区(log_buffer)中的重做日志信息写入联机重做日志文件组的成员文件,LGWR在该事件上等待该写入过程的完成。该事件的等待表示重做日志所处的磁盘设备缓慢或存在争用。下面看看官方一些资料是如何解释log file parallel write等待事件的。

 

log file parallel write

 

Writing redo records to the redo log files from the log buffer.

 

Wait Time: Time it takes for the I/Os to complete. Even though redo records are written in parallel, the parallel write is not complete until the last I/O is on disk.

 

 

Parameters:

 

 

·         P1 = files

·         P2 = blocks

·         P3 = requests

·         files Number of files written to.

        If you have more than one log member per group then the files are written to in parallel (if possible). This is the number of redo log members (files) that the writes apply to.

·         blocks Number of blocks to be written.

        The number of REDO blocks being written to each log member. eg: A value of 10 indicates 10 redo blocks for each log member.

·         requests Number of I/O requests.

        The number of distinct IO requests. The number of blocks to be written is divided up into a number of IO requests.

 

 

Wait Time:

 

 

        The actual wait time is the time taken for all the outstanding I/O requests to complete. Even though the writes may be issued in parallel, LGWR needs to wait for the last I/O to be on disk before the parallel write is considered complete. Hence the wait time depends on the time it takes the OS to complete all requests.

 

注意:自己看到这个等待事件parallel write,以及网上有“LGWR进程对同一组多个重做日志文件‘同时’写,是通过异步I/O来实现的,因此等待事件log file parallel write应该是在同一组下有多个重做日志文件时才会出现 ”这种说法,其实不管重做日志是一个或多个成员,都会出现log file parallel write等待事件。只要有buffer log写到redo log里面就有这个等待,它不是说并行写多个redo文件,单个文件也是这样的。

 

log file parallel write出现原因

 

如果数据库出现了这个等待事件,意味着重做日志(redo log)所处的磁盘设备I/O缓慢或存在争用

 

· 磁盘I/O性能比较差

· REDO文件的分布导致了I/O争用,例如,同一组的REDO成员文件放在相同的磁盘上。

 

 

查看log file parallel write等待事件

 

SQL> select s.event            as event_name
  2        ,s.time_waited/100  as time_waited
  3        ,s.average_wait     as averge_wait
  4  from v$system_event s
  5  where s.event in ('log file parallel write','log file sync');
 
EVENT_NAME                                                       TIME_WAITED AVERGE_WAIT
---------------------------------------------------------------- ----------- -----------
log file parallel write                                             45650.75         .03
log file sync                                                        54045.4         .04
 
SQL> 

相关文章: