sitemap

RSS地图

收藏本站

设为首页

Oracle研究中心

当前位置:Oracle研究中心 > 运维DBA > Oracle等待事件 >

【案例】Oracle等待事件db file async I/O submit产生原因和解决办法

时间:2017-01-08 20:45   来源:Oracle研究中心   作者:网络   点击:

天萃荷净 oracle研究中心学习笔记:环境redo量较大,高峰超过20m/s,分析awr报告发现存在大量的db file async I/O submit等待事件。

前不见,某客户的系统遭遇性能问题,该环境redo量较大,高峰超过20m/s。 业务应用程序在运行过程之中发现运行时间不稳定,有时很快,有时很慢。 我通过检查发现了一个比较奇怪的event(db file async I/O submit),以前还真没遇到过,我们先来看下load profile的数据:

 

 

 

 

 

 

 

 

 

 

可以看到,每秒19m左右的redo size。 我们来看一下top 5 event:

 

 

 

 

 

 

 

单纯的从top 5来看,貌似看不出来。 实际上我通过监控v$session发现是存在的,我当时利用的是如下监控SQL:
select inst_id,event,count(1) from gv$session where wait_class#<> 6 group by inst_id,event order by 1,3;

top 5 event居然没有,那说明什么问题? 说明该event 是后台的event。awr 报告中仍然 是可以看出来的,如下:

 

可以看到排第1位的event是 db file async I/O submit。 很明显,从字面意思上来看,就可以判断,该event是跟异步IO相关的等待事件。实际上,该event是Oracle 11.2 引入的一个新的等待事件。关于该event,Oracle metalink有相关文档进行了描述(Doc id :1274737.1),该文档是这样解释的:

According to unpublished
Bug 9649885 – DB FILE ASYNC I/O SUBMIT EVENT NOT TRACKED WHEN DISK_ASYCH_IO = TRUE
when DISK_ASYNCH_IO=TRUE, the wait event ‘db file async I/O submit’ is posted even if the IO calls cannot be performed asynchronously and this is the current behavior.
The tests show the following behavior:
disk_asynch_io filesystemio_options strace DBWR AIO DBWR waits
FALSE NONE pwrite64 NO db file parallel write
FALSE ASYNCH pwrite64 NOdb file parallel write
TRUE ASYNCH io_submit/YES db file parallel write
io_getevents
TRUE NONE pwrite64 NO db file async I/O submit

 

从metalink 文档来看,即使disk_asynch_io参数设置为true,操作系统本身也支持AIO;也并不代表oracle就能进行AIO操作。可以看到,还必须设置filesystem_options参数,建议设置为ASYNCH或setall即可.我们最后来观察下调整之后awr的情况。如下:

 

 

 

 

 

 

 

 

 

 

同时db file async I/O submit等待 也明显降低了,同时db file parallel write等待上升,但是其等待时间并不高,仅为246s.

我们可以看到,调整之后db file sequential read的wait times明显降低,降低到2w 秒左右。

补充:在Oracle 11.2版本之中,可以通过试图(v$iostat_file)来直接查询数据库的datafile是否启用了异步IO,如下:
set lines 200
set pagesize 2000
col name for a65
select name, asyhttp://www.oracleplus.netnch_io
from v$datafile f, v$iostat_file i
where f.file# = i.file_no
and (filetype_name = ‘Data File’ or filetype_name = ‘Temp File’);


--------------------------------------ORACLE-DBA----------------------------------------

最权威、专业的Oracle案例资源汇总之【案例】Oracle等待事件db file async I/O submit产生原因和解决办法

本文由大师惜分飞原创分享,网址:http://www.oracleplus.net/arch/1449.html

Oracle研究中心

关键词:

db file async I/O submit解决办法

oracle db file async I/O submit原因分析