一次客戶資料庫CPU 100%處理過程
6月4日上午接到同事電話,客戶資料庫CPU使用率達到100%,已經不能進行正常業務。
連線到資料庫,首先建立了一個snapshot,產生了一個AWR報告。
因為緊急,所以,同事要求重啟資料庫。於是重啟資料庫,並關閉了應用的某些功能(如離線銷售資料同步)。大概幾分鐘之後,資料庫恢復正常。
AWR報告dbtime異常
進一步檢視AWR報告,發現如下異常等待事件
還有如下SQL
看起來像是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:
參考:
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
連線到資料庫,首先建立了一個snapshot,產生了一個AWR報告。
因為緊急,所以,同事要求重啟資料庫。於是重啟資料庫,並關閉了應用的某些功能(如離線銷售資料同步)。大概幾分鐘之後,資料庫恢復正常。
AWR報告dbtime異常
進一步檢視AWR報告,發現如下異常等待事件
還有如下SQL
看起來像是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引起的,但是系統存在硬解析過多,存在對資料字典的不合理訪問等問題,需要進一步跟蹤。
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 記一次線上服務CPU 100%的處理過程
- nginx 處理客戶端請求的完整過程Nginx客戶端
- 記錄一次資料庫CPU被打滿的排查過程資料庫
- 記一次客戶DB CPU短時間內衝高至99%處理
- 開會時CPU 飆升100%同事們都手忙腳亂記一次應急處理過程
- MySQL資料庫INNODB表損壞修復處理過程分享MySql資料庫
- 大資料處理過程是怎樣大資料
- 一次壞塊的處理過程(一)
- 一次壞塊的處理過程(二)
- 記一次ceph pg unfound處理過程
- 一次ORACLE資料庫undo壞塊處理Oracle資料庫
- 一次併發處理過程, 基於 RedisRedis
- 記一次PMML檔案的處理過程
- 大資料的處理是怎樣的過程大資料
- 記一次linux主機中病毒處理過程Linux
- 一次線上問題處理過程記錄
- 記一次開啟資料庫慢原因分析過程資料庫
- LINUX系統 利用AWK命令處理文字資料過程Linux
- 詳述一條SQL引發的高CPU故障處理過程SQL
- 記一次Nodejs安全工單的處理過程_20171226NodeJS
- mysql,sqlserver資料庫單表資料過大的處理方式MySqlServer資料庫
- Oracle效能優化-資料庫CPU使用率100%Oracle優化資料庫
- mysql資料庫Cpu利用率100%問題排查MySql資料庫
- 記一次公司倉庫資料庫伺服器死鎖過程資料庫伺服器
- 【資料庫】資料庫儲存過程(一)資料庫儲存過程
- 記一次 MySQL 資料庫單表恢復事故處理MySql資料庫
- 體會KEIL5資料處理和傳輸過程
- 資料庫恢復過程資料庫
- 資料庫儲存過程資料庫儲存過程
- 「美餐客戶端 3.0」設計過程客戶端
- python socketserver處理客戶端的流程PythonServer客戶端
- MySQL MaxCompute與AnalyticDB實現資料處理與轉換過程MySql
- 資料庫的連線過程資料庫
- MySql資料庫——儲存過程MySql資料庫儲存過程
- 【故障公告】資料庫伺服器 CPU 100% 造成全站故障資料庫伺服器
- 【故障公告】資料庫伺服器 CPU 100% 引發全站故障資料庫伺服器
- .net socket.io客戶端使用過程客戶端
- 一次FGC導致CPU飆高的排查過程GC
- ES系列(五):獲取單條資料get處理過程實現