一次客戶資料庫CPU 100%處理過程

abstractcyj發表於2016-06-04
6月4日上午接到同事電話,客戶資料庫CPU使用率達到100%,已經不能進行正常業務。

連線到資料庫,首先建立了一個snapshot,產生了一個AWR報告。
因為緊急,所以,同事要求重啟資料庫。於是重啟資料庫,並關閉了應用的某些功能(如離線銷售資料同步)。大概幾分鐘之後,資料庫恢復正常。
AWR報告dbtime異常
一次客戶資料庫CPU 100%處理過程
進一步檢視AWR報告,發現如下異常等待事件
一次客戶資料庫CPU 100%處理過程

還有如下SQL

一次客戶資料庫CPU 100%處理過程

看起來像是TOP SQL引起的問題。但是覺得有點奇怪,這些SQL在平時執行都是極快的。

稍後,一個新的等待事件引起了我的注意:
resmgr:cpu quantum
實際上平時是根本沒有這種等待事件的。於是谷歌之。

http://www.lunar2013.com/2015/04/%E4%B8%80%E6%AC%A1%E6%95%B0%E6%8D%AE%E5%BA%93%E9%97%AE%E9%A2%98%E5%A4%84%E7%90%86%EF%BC%8811g%E8%87%AA%E5%8A%A8%E7%BB%B4%E6%8A%A4%E4%BB%BB%E5%8A%A1%EF%BC%8Clog-file-sync%EF%BC%89.html

http://www.killdb.com/2011/11/21/resmgrcpu-quantum-led-to-performance-problems.html

http://www.askmaclean.com/archives/resmgr-cpu-quantum%E7%AD%89%E5%BE%85%E4%BA%8B%E4%BB%B6.html

由於資料庫版本11.2.0.1.0與這個resource manager plan的bug描述相吻合,所以懷疑是由於bug引起的high cpu, 而CPU資源的不足又引起了其他的等待,加劇了內部共享資源爭用。

但是隻是猜測,因為並沒有metalink賬號,所以沒有辦法進一步調查。

使用以下指令碼關閉了default resource plan:

exec dbms_scheduler.disable( 'ORACLE_OCM.MGMT_CONFIG_JOB' );
exec dbms_scheduler.disable( 'ORACLE_OCM.MGMT_STATS_CONFIG_JOB' );
BEGIN
DBMS_AUTO_TASK_ADMIN.DISABLE(
client_name => 'auto space advisor',
operation => NULL,
window_name => NULL);
END;


BEGIN
DBMS_AUTO_TASK_ADMIN.DISABLE(
client_name => 'sql tuning advisor',
operation => NULL,
window_name => NULL);
END;
/

alter system set resource_manager_plan='' scope=both;
execute dbms_scheduler.set_attribute('WEEKNIGHT_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('WEEKEND_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('MONDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('TUESDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('WEDNESDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('THURSDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('FRIDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('SATURDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('SUNDAY_WINDOW','RESOURCE_PLAN','');

雖然可能是bug引起的,但是系統存在硬解析過多,存在對資料字典的不合理訪問等問題,需要進一步跟蹤。

參考:
http://www.lunar2013.com/2015/04/%E4%B8%80%E6%AC%A1%E6%95%B0%E6%8D%AE%E5%BA%93%E9%97%AE%E9%A2%98%E5%A4%84%E7%90%86%EF%BC%8811g%E8%87%AA%E5%8A%A8%E7%BB%B4%E6%8A%A4%E4%BB%BB%E5%8A%A1%EF%BC%8Clog-file-sync%EF%BC%89.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8520577/viewspace-2113998/,如需轉載,請註明出處,否則將追究法律責任。

相關文章