db file async I/O submit等待事件的故障診斷
朋友公司一個erp系統業務辦理不了,但從前臺等待事件來看 DB CPU佔了%DB time的91.81%,這個awr報告取樣時間是兩個小時,總的DB time是810分種伺服器顯示有24個邏輯CPU,每個CPU的耗時是33.75分鐘,CPU的使用率也不是很高,那麼我們來看一下後臺等待事件。
後臺等待事件排在第一的是 db file async I/O submit,這是一個非同步IO相關的等待事件,而LNS wait on SENDREQ,LGWR-LNS wait on channel是與DG相關的日誌傳輸相關的等待事件。這裡的作業系統是Linux,而根據Doc ID 1274737.1文件描述,當disk_asynch_io=true時,而filesystemio_options=none,那麼正常的檔案系統在Linux系統支援非同步I/O的情況下Oracle也不能使用異常I/O。
我們先來檢查一下Linux系統中是否執行過非同步I/O操作
[oracle@ErpOracle01 ~]$ cat /proc/slabinfo | grep kio kioctx 376 640 384 10 1 : tunables 54 27 8 : slabdata 64 64 2 kiocb 0 0 256 15 1 : tunables 120 60 8 : slabdata 0 0 0
可以看到kiocb的前兩列為0說明沒有執行非同步I/O操作,用於儲存Oracle資料檔案的就是正常的檔案系統
[root@ErpOracle01 ~]# fdisk -l Disk /dev/sda: 598.9 GB, 598879502336 bytes 255 heads, 63 sectors/track, 72809 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000a66fb Device Boot Start End Blocks Id System /dev/sda1 * 1 131 1048576 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 131 8486 67108864 82 Linux swap / Solaris /dev/sda3 8486 72810 516684800 83 Linux
在這種情況下要讓Oracle使用非同步I/O將引數filesystemio_options設定為’asynch’。
SQL> show parameter disk_asynch_io NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ disk_asynch_io boolean TRUE SQL> show parameter filesystemio_options NAME TYPE VALUE ------------------------------------ --------------------------------- ------------------------------ filesystemio_options string none SQL> alter system set filesystemio_options='asynch' scope=spfile; System altered.
LNS wait on SENDREQ是DG的RFS I/O時間和網路時間的總計,而它可能是由網路頻寬或備庫的I/O效能引起的。而這經確認是備庫的I/O效能引起的,再加上在這期間後臺維護人員在主庫做大批次的資料更新。在主庫中出現了Log file sync和log file parallel write等待事件。LGWR-LNS wait on channel等待事件是日誌寫程式或網路伺服器程式在KSR通道上等待接受訊息所花的時間.LNS wait on SENDREQ, Log file sync, log file parallel write, LGWR-LNS wait on channel透過調整備庫I/O效能和對主庫增加online and standby redo logs來改善。然後在中午休息時間重啟了資料庫,經過三天的執行,業務沒有出現辦理不了的情況了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-1667515/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- I/O上的等待事件 —— control file sequential read/control file parallel write事件Parallel
- 【等待事件】db file sequential read事件
- 【等待事件】db file scattered read事件
- db file scattered read等待事件事件
- db file sequential read等待事件事件
- 0316理解db file parallel read等待事件Parallel事件
- 等待事件db file sequential read、db file scattered read和direct read的區別事件
- 0322理解db file parallel read等待事件2Parallel事件
- 【TUNE_ORACLE】等待事件之IO等待“db file sequential read”Oracle事件
- 【TUNE_ORACLE】等待事件之IO等待“db file parallel write”Oracle事件Parallel
- 【TUNE_ORACLE】等待事件之IO等待“db file scattered read”Oracle事件
- 基於等待事件的效能診斷(轉)事件
- [20210315]理解db file parallel read等待事件3.txtParallel事件
- [20210315]理解db file parallel read等待事件4.txtParallel事件
- 【等待事件】log file sync事件
- log file sync等待事件事件
- 故障分析 | Kubernetes 故障診斷流程
- MySQL使用event等待事件進行資料庫效能診斷MySql事件資料庫
- 光纖故障診斷和故障排查
- 【TUNE_ORACLE】等待事件之日誌等待“log file sync”Oracle事件
- 9 Oracle Data Guard 故障診斷Oracle
- log file sync等待事件處理思路事件
- 【WAIT】 log file sync等待事件說明AI事件
- 【TUNE_ORACLE】等待事件之日誌等待“log file parallel write”Oracle事件Parallel
- 故障排除 | enq:TX - index contention等待事件ENQIndex事件
- Oracle診斷事件列表(轉)Oracle事件
- JavaScript submit 事件JavaScriptMIT事件
- Kubernetes 叢集中 Ingress 故障的根因診斷
- 一個os thread startup、log file sync等待的故障回顧thread
- 如何診斷和解決db2問題DB2
- [20201204]關於等待事件Log File Sync.txt事件
- 一次SGA與Swap故障診斷
- 一次DG故障診斷過程分析
- 故障診斷為什麼要用深度學習?深度學習
- Java I/O系統學習系列一:File和RandomAccessFileJavarandomMac
- 大語言模型與資料庫故障診斷模型資料庫
- 風機故障診斷學習資源(更新中)
- oracle 12c 新增的診斷事件的初步嘗試Oracle事件
- MySQL故障診斷常用方法手冊(含指令碼、案例)MySql指令碼