概述
一大早運維團隊就來找事,說系統又有點卡了,然后發現了一個比較少見的等待事件--kfk: async disk IO,趁著這次排查的過程也簡單說下這個等待事件吧!
1、查看TOP N等待事件
SELECTinst_id,EVENT,SUM(DECODE(WAIT_TIME,0,0,1))"Prev",SUM(DECODE(WAIT_TIME,0,1,0))"Curr",COUNT(*)"Tot",sum(SECONDS_IN_WAIT)SECONDS_IN_WAITFROMGV$SESSION_WAITWHEREeventNOTIN('smontimer','pmontimer','rdbmsipcmessage','SQL*Netmessagefromclient','gcsremotemessage')ANDeventNOTLIKE'%idle%'ANDeventNOTLIKE'%Idle%'ANDeventNOTLIKE'%StreamsAQ%'GROUPBYinst_id,EVENTORDERBY1,5desc;--classslavewait
可以發現排在前面的是kfk: async disk IO等待事件。
2、根據等待事件查會話
select/*+rule*/sid,s.serial#,spid,event,sql_id,seconds_in_waitws,row_wait_obj#obj,s.username,s.machine,BLOCKING_INSTANCE||'.'||blocking_sessionb_sessFROMv$sessions,v$processpWHEREevent='&event_name'ANDs.paddr=p.addrorderby6;
3、查詢某個會話詳情
select/*+rule*/sid,s.serial#,spid,event,sql_id,seconds_in_waitws,row_wait_obj#obj,s.username,s.machine,BLOCKING_INSTANCE||'.'||blocking_sessionb_sessFROMv$sessions,v$processpWHEREevent='&event_name'ANDs.paddr=p.addrorderby6;
顯示在備份..
4、檢查服務器是否在備份?
查看備份日志發現確實是正在做0級全備。
5、查看kfk: async disk IO
selectname,parameter1,parameter2,parameter3,wait_classfromv$event_namewherename='kfk:asyncdiskIO';
6、關于kfk: async disk IO
kfk: async disk IO等待事件是ASM下異步的System I/O等待事件,kfk內核層面在disk_asynch_io=true時被激活。當rbal或其他ASM相關后臺進程在維護ASM磁盤組時可能進入kfk: async disk IO等待。
先確定一點,kfk: async disk IO是11G后ASM下直接路徑操作和ASM維護操作時會遇到的一個等待事件。
先來看大牛的描述吧:
異步IO的兩個函數:io_submit和io_getevents,Oracle是先調用io_submit發起異步IO,然后調用io_getevents查看IO狀態。
從圖中可以看到,這位大牛認為,io_submit階段,等待是kfk: async disk IO, 從io_getevents到IO完成,是direct path read。
再來看看緊接著的下幅圖:
在這幅圖中,這位大師打開10046,并同時用Truss、Strace類的工具跟蹤進程的執行,跟蹤結果中,先有io_submit調用,馬上就是向10046跟蹤文件中寫kfk: async disk IO等待。在io_getevents調用后,又緊接著是向10046跟蹤文件中寫direct path read等待事件。據此,此大師得出結論,io_submit期間,等待事件是kfk: async disk IO,io_getevents則對應direct path read。
但實際情況kfk: async disk IO并不如此簡單,因為如果是io_submit對應kfk: async disk IO,io_getevents對應direct path read。我們都知道,間路徑IO,db file scattered read等待事件時,異步IO的完成,也是先io_submit發出IO,再在后面使用io_getevents查看IO狀態。和直接路徑一樣的,為什么間接路徑時,只有db file scattered read等待事件,并不伴隨有kfk: async disk IO等待事件呢。
顯然,是直接路徑和間接路徑的區別,產生了kfk: async disk IO等待。他們的區別在哪里呢,看下面這幅圖
這幅圖是直接路徑下的情況,由DTrace跟蹤得到,比Truss、Strace結果更豐富、準確。
Oracle在發出異步IO指令后,會去做一些其他的事情,并不等待IO完成。異步IO嗎,并不需要發出IO指令后,就一直等著IO完成。
在進行了一些操作后,Oracle調用函數,以0秒的超時查看IO的完成狀態。
0秒的超時,就是不會有任何停留,僅僅調用函數查看IO狀態,如IO已完成,則進入IO完成流程。
如IO沒有完成,會再進行一些其他操作,然后再次調用函數,以600秒超時,查看IO狀態。也就是停留最多600秒,等待IO完成。如果IO完成,進入IO完成流程。
再來看等待事件,從發出IO指令,到0秒超時,等待事件是kfk: async disk IO。如果0秒超時IO沒有完成,其后直到IO完成的等待事件是direct path read。
間接路徑時,所有IO,都是600秒超時,沒有0秒超時這一塊,所以,間接路徑只有db file scattered read等待,而沒有kfk: async disk IO等待。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注本站行業資訊頻道,感謝您對本站的支持。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
銀行無抵押小額貸款需要什么條件?從當前實際看,小額信用貸款的基本條件是:一、是中國大陸居民,年齡在50歲以下;二、是從事正當的生產經營活動,項目具有發展潛力或市場競爭力,具備按期償還貸款本息的能力。三、是有穩定的收入來源;四、是無不良信用記錄,貸款用途不能作為炒股,賭博等行為。無抵押貸款銀行利息是多少?1、銀行無抵押貸款有很多品種,有針對企業的,也有針對個人的,個人無抵押貸款還有針對不同人群的,也...
什么是結婚貸款?申請個人無抵押信用貸款作為結婚用途的就是結婚貸款。貸款的金額一般都可以滿足結婚辦酒、蜜月的所需。一般月收入在3000元以上的,都可以申請到月收入8-15倍的結婚貸款。結婚貸款的還款方式也有多種選擇,最長還款期一般為5年。結婚貸款申請條件1、貸款人年齡在18~56周歲,具有完全民事行為能力;2、貸款人的月收入必須在2000元以上;3、貸款人需有穩定的工作;4、在現在所在的單位工作滿3...
內容摘要魔獸世界TBC懷舊服卡格羅什的命運任務怎么做1魔獸世界TBC懷舊服卡格羅什的命運任務怎么做1到影月谷與斥候薩格蘭對話接受卡格羅什的命運任務。把卡格羅什的背包給斥候薩格蘭后對話即可完成任務。 如何完成魔獸世界TBC懷舊服卡格羅什的命運任務?今天就教大家如何。如何做魔獸世界TBC懷舊服卡格羅什的命運任務?1.與薩格蘭對話接受卡格羅什的命運任務。2.根據地圖去死亡熔爐。(資料圖片僅供參考)3....