自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程:大事務并發(fā)回滾

數(shù)據(jù)庫 SQL Server
最近生產(chǎn)環(huán)境有這么個現(xiàn)象,平時的訂單調(diào)度只需要2s內(nèi)可以出結果,但是多個人調(diào)度就會卡住,超過15分鐘都沒有結果出來,有時還會失敗然后導致數(shù)據(jù)不準確。

 [[273847]]

概述

最近生產(chǎn)環(huán)境有這么個現(xiàn)象,平時的訂單調(diào)度只需要2s內(nèi)可以出結果,但是多個人調(diào)度就會卡住,超過15分鐘都沒有結果出來,有時還會失敗然后導致數(shù)據(jù)不準確。

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

下面記錄一下生產(chǎn)環(huán)境卡頓時排查的過程。

1、獲取ASH報告

  1. SQL> @?/rdbms/admin/ashrpt.sql 
  2. --To specify absolute begin time: 
  3. --[MM/DD/YY]] HH24:MI[:SS] 
  4. --08/09/19 08:40:00 

 

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

 

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

 

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

 

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

2、ASH分析

(1)Top User Events

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

(2)相關sql

Top SQL with Top Events

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

sql明細

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

(3)存儲過程

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

(4)TOP sessions

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

從上面分析可以看到兩個明顯的等待事件:wait for stopper event to be increased 等待事件和wait for a undo record 等待事件,這個應該是批量任務調(diào)度的時候產(chǎn)生了大量的大事務,產(chǎn)生了一些回滾造成了嚴重的資源消耗

3、處理大事務并發(fā)回滾

一般情況下wait for stopper event to be increased 等待事件是跟wait for a undo record 等待事件聯(lián)系起來的。

對于這個等待事件metalink上面有一篇文檔

  1. 464246.1 
  2. Sometimes Parallel Rollback of Large Transaction may become very slow. After killing a large running transaction  
  3. (either by killing the shadow process or aborting the databasethen database seems to hang, or smon and parallel query servers  
  4. taking all the available cpu. 
  5. In fast-start parallel rollback, the background process Smon acts as a coordinator and rolls back a set of transactions in parallel  
  6. using multiple server processes. Fast start parallel rollback is mainly useful when a system has transactions that run a long time  
  7. before comitting, especially parallel Inserts, Updates, Deletes operations. When Smon discovers that the amount of recovery work is  
  8. above a certain threshold, it automatically begins parallel rollback by dispersing the work among several parallel processes. 
  9. There are cases where parallel transaction recovery is not as fast as serial transaction recovery, because the pq slaves are interfering 
  10. with each other. It looks like the changes made by this transaction cannot be recovered in parallel without causing a performance problem.  
  11. The parallel rollback slave processes are most likely contending for the same resource, which results in even worse rollback performance  
  12. compared to a serial rollback

解決的辦法:

  1. --關掉并發(fā)回滾,變成串行回滾(直接重啟解決) 
  2. sql> alter system set fast_start_parallel_rollback = false scope=spfile;  

 

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

通常,如果有很多并發(fā)進程,可以根據(jù)v$px_session視圖去查看,查看v$px_session視圖,發(fā)現(xiàn)所有的并發(fā)進程都是由smon進程導致(即qcsid列為smon進程的session id)

而smon進程的等待事件為wait for stopper event to be increased

即smon進程在做大事務的回滾,默認參數(shù)fast_start_parallel_rollback參數(shù)為low,即回滾時會啟動2*CPU個數(shù) 個并發(fā)進程。而由于是使用并發(fā),所以可能由于并發(fā)之間相互使用共同的資源,導致回滾速度更慢。因為是生產(chǎn)環(huán)境,不能隨便重啟,所以我用了下面的方法來修改這個參數(shù):

(1)查找smon進程ID

  1. select pid,spid,pname,username,tracefile from v$process where pname='SMON' 

 

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

(2)禁用smon進程的事務清理(Disable SMON transaction cleanup)

  1. oradebug setorapid 'SMON's Oracle PID'; 
  2.  oradebug event 10513 trace name context forever, level 2 

 

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

(3)查詢V$FAST_START_SERVERS視圖,將所有smon啟用的并發(fā)進程殺掉

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

(4)修改fast_start_parallel_rollback參數(shù)

  1. alter system set fast_start_parallel_rollback=false

(5)啟用smon進程的事務清理(enable transaction recovery)

  1. oradebug setorapid 'SMON's Oracle PID'; 
  2. oradebug event 10513 trace name context off 

(6)獲得tracefile name

  1. oradebug tracefile_name 
記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

(7)驗證

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務并發(fā)回滾

4、業(yè)務驗證

修改后去業(yè)務驗證,到高峰期還是有卡頓現(xiàn)象,不過頻率減少了很多,報錯之類的也沒有了,同時觀察新的報告可以發(fā)現(xiàn)并發(fā)回滾之類的等待事件已經(jīng)沒有了。

責任編輯:華軒 來源: 今日頭條
相關推薦

2021-03-01 06:14:50

環(huán)境高并發(fā)延遲

2019-09-24 07:00:01

SQL Server服務器卡頓內(nèi)存分配

2022-06-01 06:17:42

微服務Kafka

2019-08-19 01:34:38

數(shù)據(jù)庫SQL數(shù)據(jù)庫優(yōu)化

2019-12-12 10:38:10

mysql數(shù)據(jù)庫nnodb

2019-01-21 11:17:13

CPU優(yōu)化定位

2019-09-27 17:24:26

數(shù)據(jù)庫優(yōu)化sql

2020-09-25 07:57:42

生產(chǎn)事故系統(tǒng)

2018-12-06 16:25:39

數(shù)據(jù)庫服務器線程池

2020-11-03 07:34:12

Kafka后端工程師

2019-11-18 13:42:55

MySQL數(shù)據(jù)庫遷移

2019-11-22 08:05:01

數(shù)據(jù)庫mysql分區(qū)

2019-09-08 17:52:10

數(shù)據(jù)庫log file sy等待事件

2019-12-16 07:18:42

數(shù)據(jù)庫SQL代碼

2019-12-02 08:09:57

境數(shù)據(jù)庫連接超時自動回收

2021-01-12 07:57:36

MySQLBinlog故障處理

2019-12-27 10:43:48

磁盤數(shù)據(jù)庫死鎖

2019-07-25 08:30:58

數(shù)據(jù)庫服務器故障

2020-12-15 11:18:43

系統(tǒng)磁盤lvm數(shù)據(jù)庫

2017-12-19 14:00:16

數(shù)據(jù)庫MySQL死鎖排查
點贊
收藏

51CTO技術棧公眾號