您的位置:首页 > 数据库 > Oracle

数据库服务器CPU持续百分之百、部分Session一直处于执行状态---等待事件为:asynch descriptor resize(Oracle Bug )

2016-05-18 21:50 531 查看
问题描述:

项目反馈数据库服务器的CPU持续100%的情况,跟踪发现很多活动会话的等待事件是“asynchdescriptorresize”,并且这些会话一直处于Active状态,而这些会话执行的查询并不复杂,感觉很是奇怪。

原因分析:

查阅了一下资料,对应Oracle的Bug9829397,ExcessiveCPUandmany"asynchdescriptorresize"waitsforSQLusingAsyncIO,此BUG发生于11.2.0.1和11.2.0.2上,11.2.0.3修复了此问题。

设置隐藏参数也是一个解决办法:将disk_asynch_io设置为false来禁用异步I/O(数据库存储方式为文件系统时)

SQL>altersystemsetdisk_asynch_io=falsescope=spfile;//该参数不是动态的
SQL>altersystemsetfilesystemio_options=nonescope=spfile;//该参数不是动态的

修改参数配置并重启后,问题依旧,该sql仍然处于一直执行状态,但等待事件变为:dbfilescatteredread

尝试将db_file_multiblock_read_count调大,问题解决。

SQL>showparameterdb_file_multiblock_read_count

SQL>altersystemsetdb_file_multiblock_read_count=10000;--试图变更为超大值

经测试,最后将db_file_multiblock_read_count的值定义为128(OR256、512?)


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: