Oracle資料庫非同步IO導致查詢響應緩慢
客戶的環境是兩臺HP-UX ia64 B.11.31部署的一套Oracle 11.2.0.4.4 RAC Database,儲存是一套EMC,一套HDS,透過賽門鐵克storage foundation將兩套儲存做成映象,實現節點之間的共享儲存。前期只有一套HDS在使用,在將EMC加入到storage foundation之後,RAC的第一個節點出現查詢操作緩慢的情況,包括sqlplus本地登陸緩慢,查詢只有兩條資料的臨時表耗時12秒,資料庫例項啟動也非常的慢。
最終該問題透過檢查等待事件的方式得以解決,下面簡單描述一下處理過程:
會話1:
在伺服器本地使用sqlplus登陸資料庫例項,
1).執行下面的SQL語句確定本會話的SID:
SQL> SELECT DISTINCT SID FROM V$MYSTAT;
2).執行查詢2條資料的臨時表(固定耗時12秒)。
會話2:
在伺服器本地使用sqlplus登陸資料庫例項,
執行下面的SQL語句,查詢會話1在查詢2條資料的臨時表時發生的等待事件:
SQL> set linesize 200
SQL> set pagesize 200
SQL> col program format a30
SQL> col machine format a30
SQL> col wait_class format a30
SQL> select username,program,machine,event,wait_class from v$session where wait_class <>'Idle' and sid=572
USERNAME PROGRAM MACHINE EVENT WAIT_CLASS
------------------------------ ------------------------------ ------------------------------ ---------------------------------------------------------------- ------------------------------
SYS sqlplus@rx9900a (TNS V1-V3) rx9900a asynch descriptor resize Other
該等待事件的WAIT_CLASS為Other,比較異常,從EVENT可以大概瞭解該等待和非同步IO有一定的關係,透過在MOS上檢索該EVENT找到如下一篇文章:
Bug 9829397 Excessive CPU and many "asynch descriptor resize" waits for SQL using Async IO
This note gives a brief overview of bug 9829397.The content was last updated on: 28-JUN-2013
Click here for details of each of the sections below.
Affects:
Product (Component) Oracle Server (Rdbms) Range of versions believed to be affected Versions >= 11.2 but BELOW 12.1 Versions confirmed as being affected Platforms affected Generic (all / most platforms affected)
It is believed to be a regression in default behaviour thus:
Regression introduced in 11.2.0.2
Fixed:
This issue is fixed in
Symptoms: |
Related To: |
Description
Some queries in 11.2 may exhibit higher CPU usage than earlier releases with many "asynch descriptor resize" waits occurring compared to the same SQL in earlier releases. Rediscovery Notes: Async IO is in use. The total time waiting for "asynch descriptor resize" is typically very small but with very high counts. The high wait count indicates many resizes of the number of AIO descriptors unnecessarily wasting CPU.Workaround Disable async IO. eg: Set DISK_ASYNCH_IO = false <<<< 禁用非同步IO References: For more information about "asynch descriptor resize" see the following: Note:1273748.1 High Numbers of 'asynch descriptor resize' waits Note:1081977.1 Details of the "asynch descriptor resize" wait event.Getting a Fix Use one of the "Fixed" versions listed above (for Patch Sets / bundles use the latest version available as contents are cumulative - the "Fixed" version listed above is the first version where the fix is included) or Click here for suggestions on how to get a fix for this issue
Please note: The above is a summary description only. Actual symptoms can vary. Matching to any symptoms here does not confirm that you are encountering this problem. For questions about this bug please consult Oracle Support. |
References
Bug:9829397 (This link will only work for PUBLISHED bugs)
Note:245840.1 Information on the sections in this article
從文章可以看出該問題可能是個bug,透過在資料庫例項關閉非同步IO即可解決問題,根據文章執行如下的操作:
SQL> show parameter io
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
......
disk_asynch_io boolean TRUE
......
SQL> alter system set disk_asynch_io=false scope=spfile sid='scrk1';
System altered.
重啟RAC第一個節點資料庫例項之後問題即得到解決。
--end--
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23135684/viewspace-1789767/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- EM自動任務導致資料庫緩慢資料庫
- Mysql索引型別建立錯誤導致SQL查詢緩慢MySql索引型別
- 域名解析導致資料庫連線緩慢(hosts :files dns)資料庫DNS
- DNS導致資料庫登入緩慢的問題解決DNS資料庫
- PostgreSQL、KingBase 資料庫 ORDER BY LIMIT 查詢緩慢案例SQL資料庫MIT
- 一次資料庫響應緩慢的問題排查資料庫
- [20181130]hash衝突導致查詢緩慢.txt
- 通過資料庫鏈查詢會導致源和目標庫SCN同步資料庫
- 統計資訊過期導致SQL進行NESTED LOOPS查詢緩慢SQLOOP
- laravel 5.8 連線資料庫庫查詢 資料 速度慢,使用mysql 直接查詢響應就快,什麼原因呢?Laravel資料庫MySql
- 資料庫查詢慢的原因資料庫
- oracle 跨庫查詢greenplum慢Oracle
- 資料庫連線緩慢資料庫
- 10.2.0.1監聽子程式導致資料庫不能響應資料庫
- Oracle 11g資料庫緩慢診斷案例Oracle資料庫
- 一次資料庫響應慢分析資料庫
- 資料庫響應慢問題處理資料庫
- dba_jobs_running查詢緩慢
- MySQL:RR模式下insert也可能導致查詢慢MySql模式
- ORACLE DSG資料同步軟體程式導致資料庫無法正常關閉Oracle資料庫
- MySQLslowquery[慢查詢]資料整理MySql
- 故障分析 | 血的教訓-由慢查詢引發的備份等待導致資料庫連線打滿資料庫
- 並行查詢緩慢的問題分析並行
- 查詢DBA_HIST_ACTIVE_SESS_HISTORY緩慢
- 【ElasticSearch】給ElasticSearch資料庫配置慢查詢日誌Elasticsearch資料庫
- 磁碟IO故障導致的SQLServer資料庫無法寫入SQLServer資料庫
- RAC環境關閉CLUSTER後導致連線緩慢
- SQL語句響應緩慢原因及優化SQL優化
- Oracle資料庫的查詢變慢了Oracle資料庫
- java同步非阻塞IOJava
- 資料庫MySQL一般查詢日誌或者慢查詢日誌歷史資料的清理資料庫MySql
- MySQL slow query [慢查詢] 資料整理MySql
- 資料庫系列:MySQL慢查詢分析和效能最佳化資料庫MySql
- oracle 9i 查詢資料字典檢視慢案例分析Oracle
- Java 非阻塞 IO 和非同步 IOJava非同步
- 資料庫查詢資料庫
- 資料庫 - 資料查詢資料庫
- 資料庫資料的查詢----連線查詢資料庫