log file sync 等待超高一例子
轉自:http://www.killdb.com/2014/04/20/log-file-sync-%E7%AD%89%E5%BE%85%E8%B6%85%E9%AB%98%E4%B8%80%E4%BE%8B%E5%AD%90.html
這是3月份某客戶的情況,原因是伺服器硬體故障後進行更換之後,業務翻譯偶爾出現提交緩慢的情況。我們先來看下awr的情況。
我們可以看到,該系統的load profile資訊其實並不高,每秒才21個transaction。先來看看top5events:
從top 5event,我們可以發現,log file sync的avg wait非常之高,高達124ms。大家應該知道,對於絕大多數情況
下,log file sync的平均等待時間是小於5ms的,這個值有點高的離譜。
我們知道,產生log file sync等待的原因有很多。關於log file sync,tanel Poder大神寫過一篇很牛的pdf,大家可以參考下。
這裡我主要引用大神的圖,來簡單描述產生log file sync的原因可能有哪些,首先我們來看下從前端程序提交到最後得到反饋時,以及中間處理的整個流程情況:
從上圖中,我們可以清楚的看到整個流程。這裡可以進行簡單的描述:
1、當user發起一個commit後;
2、前端程序(即Server 程序)會post一個資訊給lgwr程序,告訴它,你應該去寫redo buffer了。
3、當LGWR程序得到指示後,開始呼叫作業系統函式進行物理寫,在進行物理寫的這段時間內,會出現
log file parallel write等待。這裡或許有人會有疑問,為什麼12c之前只有一個lgwr程序,這裡卻是parallel
write呢?這裡需要說明一下,lgwr程序在將redo buffer中的資料寫出到log file檔案中時,也是以batch方式
程序的(實際上,dbwN程序也是batch的模式),有相關的隱含引數控制。
4、當LGWR完成wrtie操作之後,LGWR程序會返回一個資訊給前端程序(Server程序),告訴它,我已經寫完了,
你可以完成提交了。
5. user 完成commit操作。
這裡補充一下,這是由於Oracle 日誌寫優先的原則,假設在commit之前redo buffer的相關entry資訊不立即寫到redo
log file中,那麼如果資料庫出現crash,那麼這是會丟資料的。
從上面的流程圖,我們其實也可以看到,log file sync和log file parallel write可以說是相互關聯的。換句話講,如果log file parallel write的時間很長,那麼必然導致log file sync等待時間拉長。
我們假設log file parallel write 等待很高,那麼著可能通常是物理磁碟IO的問題,如下:
我們從上圖可以發行,如果LGWR程序在完成IO操作的過程中時間過長,那麼將導致log file parallel write等待升高。
實際上,在整個當用戶發出commit到完成commit的過程中,涉及到很多環節,並不是僅僅只有物理IO會影響log file sync/log file parallel write。還有CPU也會影響Log file sync和log file parallel write。我們再來看個圖:
我們可以看到,上述流程中的4個環節都涉及到CPU的排程,如果在整個事務commit的過程中,系統CPU出現極度緊張,那麼這可能會導致LGWR程序無法獲得CPU,會進行排隊等待,顯然,這勢必將導致log file sync或log file parallel write等待
的升高。
備註:Oracle中還可以通過隱含引數_high_priority_processes 來控制程序獲取CPU的優先順序。在一個cpu相對缺乏的系統中,可以通過設定該引數來進行緩解。
最後我們再回到這個案例中來,客戶這裡的環境,我們是可以排除CPU問題。那麼最大的嫌疑可能就是儲存本身的問題,導致IO很慢,然而,實際上這也是可以排除的,大家其實應該注意到前面的Top 5 event了,log file parallel write的平均等待
時間並不高,如果是儲存IO問題,那麼這個event的平均等待時間應該是比較高才對。
我們可以看到log file sync和log file parallel write的waits都是差不多的。但是log file parallel write的avg wait time僅僅只有4ms,這是一個正常的值。也就是說可以我們排除儲存IO問題。
那麼問題是什麼呢 ?我們利用Oracle MOS提供的指令碼來查詢下log file sync和log file parallel write等待的分佈情況:
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
INST_ID
EVENT WAIT_TIME_MILLI WAIT_COUNT
----------
---------------------------------------- --------------- ----------
1
log file sync 1 259306
1
log file sync 2 2948999
1
log file sync 4 1865918
1
log file sync 8 173699
1
log file sync 16 43194
1
log file sync 32 6095
1
log file sync 64 1717
1
log file sync 128 2458
1
log file sync 256 5180
1
log file sync 512 9140
1
log file sync 1024 558347
1
log file parallel write 1 5262
1
log file parallel write 2 4502377
1
log file parallel write 4 1319211
1
log file parallel write 8 46055
1
log file parallel write 16 23694
1
log file parallel write 32 3149
1
log file parallel write 64 283
1
log file parallel write 128 267
1
log file parallel write 256 157
1
log file parallel write 512 73
1
log file parallel write 1024 42
1
log file parallel write 2048 39
1
log file parallel write 4096 103
1
log file parallel write 8192 21
1
log file parallel write 16384 22
1
log file parallel write 32768 190
1
log file parallel write 65536 1
|
大家可以簡單的計算一下,其實log file sync和log file parallel write 等待事件,幾乎99%左右的平均等待時間都是
小於等於4ms的,這是屬於正常的情況;然而有少數的情況其等待時間是很長的,例如log file sync最高的單次等待
時間高達1秒,由於偶爾的等待很高,因此將整個log file sync的平均等待時間拉高了。
到最後,問題就比較清楚了,我認為這是由於主機和儲存之間的鏈路可能出現異常或不穩定導致。臨時的解決方法
將redo logfile 挪到本地磁碟,解決了該問題。
後記:經客戶後面確認,確實是儲存光纖線介面鬆了。 哈哈
相關推薦
log file sync 等待超高一例子
轉自:http://www.killdb.com/2014/04/20/log-file-sync-%E7%AD%89%E5%BE%85%E8%B6%85%E9%AB%98%E4%B8%80%E4%BE%8B%E5%AD%90.html 這是3月份某客戶的情況,原因是伺
生產環境 direct path read 與log file sync等待事件問題處理
!= 產生 nbsp 了解 idt buffer file rom .net 1. 2018-09-26 前7天awr報告(此期間 oracle 使用率為 4,022.34/6,179.76/24=2.71%) 由此看出最顯著問題是 log file sync 等待事件,查
ORACLE AWR報告之 log file sync等待事件優化的總結【轉自ITPUB】
來自白大師(白鱔)對log file sync等待事件優化的總結,供各位puber們學習參考:一、 log file sync平均等待事件時間超過7ms,如果等待時間過長,說明log write每次寫入的時間過長,如果能夠優化redo日誌檔案儲存,使之存放在更快的磁
log file sync等待事件和log file parallel write等待事件
本文主要轉載魏興華大師在itpub上的一篇帖子,由於csdn禁止itpub的連結,就不貼了: log file sycn是ORACLE裡最普遍的等待事件之一,一般log file sycn的等待時間都非常短 1-5ms,不會有什麼問題,但是一旦出問題,往往都比較難解決。什麼
log file sync等待超高一例
這是3月份某客戶的情況,原因是伺服器硬體故障後進行更換之後,業務翻譯偶爾出現提交緩慢的情況。我們先來看下awr的情況。 我們可以看到,該系統的load profile資訊其實並不高,每秒才21個transaction。先來看看top5events: 從top 5e
Oracle資料庫由dataguard備庫引起的log file sync等待
導讀:最近資料庫經常出現會話阻塞的報警,過一會又會自動消失,昨天晚上恰好發生了一次,於是趕緊進行了檢視,不看不知道,一看嚇一跳,發現是由dataguard引起的log file sync等待。我們知道,通常log file sync等待都是由頻繁寫日誌造成的,這次居然是由DG環境引起的。(一)問題描述資料庫:
oracle之 等待事件LOG FILE SYNC (awr)優化
dlink append 訪問性 wak date 告訴 wakeup 優先級 led log file sycn是ORACLE裏最普遍的等待事件之一,一般log file sycn的等待時間都非常短 1-5ms,不會有什麽問題,但是一旦出問題,往往都比較難解決。什麽時候會
log file sync(日誌檔案同步) 與 Log file parallel write 等待事件
log file sync(日誌檔案同步)等待事件具有一個引數:buffer#。在Oracle Database 10g中,這種等待事件位於Commit等待下面。當處理log file sync等待事件時,注意下面的思想:◎ log file sync 等待時間和事務中指(
等待事件:log file sync
log file sync:該等待事件發生在redo log 從 log buffer寫入到log file期間 當用戶程序提交時,會通知LGWR將redo buffer寫入到redo file中,當LGWR程序完成寫入操作後,LGWR在通知使用者程序寫入完成;
自適應log file sync影響案例
Oracle最吸引人的地方,就是有些答案,隱藏在種種現象之中,撲朔迷離,朦朦朧朧,就像偵探辦案,首先要有思路,其次要有證據,再者就是紮實的基礎知識,另外就是些運氣。 例如最近碰見了一個案例,一套3節點11.2.0.4 RAC,某應用只用節點1(FAILOVER other
log file sync, log file parallell write
SQL> select name,parameter1,parameter2,parameter3,wait_class from v$event_name where name in( 'log file sync','log file parallel write'
如何在awr裡面檢視 log file sync是否是由使用者commit太多造成
根據Tanel Põder: Reasons for log file sync waits • Commits wait for log file sync by default • User commits • There’s an user commits stati
2017-04-12 DBA日記,頻繁commit導致的log file sync的診斷
背景: 2017-04-11 19:20收到開發員反饋,在某庫db1上執行update語句很快,但commit很慢,至少執行了5分鐘commit都沒有返回。 問題: 是什麼原因導致commit被
log file switch (archiving needed) 等待事件一例
log file switch archiving needed 一、環境描述Oracle 11g RAC 二、問題描述客戶執行批處理長時間無法完成。 三、問題處理過程 1、查看等待事件 SQL> select inst_id,event,count(*) from gv$session whe
Oracle db file parallel write 和 log file parallel write 等待事件 說明
一. db file parallel write 等待事件 引自如下blog: db file parallel write The db file parallel write wait e
等待事件 log file switch (日誌切換)
日誌檔案相關等待 Redo 對於資料庫來說非常重要, 有一系列等待事件和日誌相關,通過 v$event_name 檢視可以找到這些等待事件 SQL> select name from v$event_name where name like '%log%';
InnoDB: Error: log file .ib_logfile0 is of different size 0 10485760 bytes
ren code window windows 技術分享 watermark specified engine completed 啟動WAMP Server的時候報例如以下的錯誤: 140618 23:12:32 [Note] Plugin 'FEDER
Myeclipse啟動報錯:An error has occurred.See the log file
entry classpath ret 出現 restore div nap cati security 出現這個問題是因為斷電前myeclipse還在運行,日誌報錯如下: !ENTRY org.eclipse.osgi 4 0 2017-07-24 08:29:48.4
log file switch (checkpoint incomplete)的問題定位
tab diff margin 等待 data- center end bus wid 今天測試環境下應用慢。發現數據庫出了問題,直接上AWR報告。因為是虛擬機。所以不用貼cpu的個數,能夠發現負載高。 Snap Id
python安裝失敗提示“one or more issues caused the setup to fail . Please fix the issues and then retry setup.For more information see the log file”
ase ice body orm bubuko mat 解決方法 3.4 mage 換了項目組,換了新電腦,重裝Python時遇到提示如下圖所示: 原因:需要安裝Windows 7 Service Pack 1 直接點擊“update your