成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

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

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

 [[273847]]

概述

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

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務(wù)并發(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)化過程--大事務(wù)并發(fā)回滾

 

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

 

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

 

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

2、ASH分析

(1)Top User Events

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

(2)相關(guān)sql

Top SQL with Top Events

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

sql明細

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

(3)存儲過程

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

(4)TOP sessions

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

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

3、處理大事務(wù)并發(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. --關(guān)掉并發(fā)回滾,變成串行回滾(直接重啟解決) 
  2. sql> alter system set fast_start_parallel_rollback = false scope=spfile;  

 

記一次生產(chǎn)環(huán)境卡頓優(yōu)化過程--大事務(wù)并發(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進程在做大事務(wù)的回滾,默認參數(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)化過程--大事務(wù)并發(fā)回滾

(2)禁用smon進程的事務(wù)清理(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)化過程--大事務(wù)并發(fā)回滾

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

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

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

  1. alter system set fast_start_parallel_rollback=false

(5)啟用smon進程的事務(wù)清理(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)化過程--大事務(wù)并發(fā)回滾

(7)驗證

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

4、業(yè)務(wù)驗證

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

責任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2021-03-01 06:14:50

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

2019-09-24 07:00:01

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

2022-06-01 06:17:42

微服務(wù)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ù)庫服務(wù)器線程池

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ù)庫連接超時自動回收

2025-05-14 08:05:00

大數(shù)據(jù)Kafka集群

2021-01-12 07:57:36

MySQLBinlog故障處理

2019-12-27 10:43:48

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

2025-05-19 09:22:32

2019-07-25 08:30:58

數(shù)據(jù)庫服務(wù)器故障
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 黄一区二区三区 | 一级女毛片 | 精品在线播放 | 久久久久1 | 日本精品一区二区 | 性一交一乱一伦视频免费观看 | 欧美精品一区二区三区在线播放 | 在线视频第一页 | 欧美在线免费 | 国产成人精品久久二区二区 | 国产精品久久a | 欧美在线小视频 | 日本成人中文字幕 | 欧美一级片在线观看 | 九色 在线 | 国产一区二区三区免费观看在线 | 欧美区日韩区 | 国产一区二区三区 | 国产国产精品久久久久 | 一级日韩 | 国产伦精品一区二区三区精品视频 | 国产在线一区二区 | 成人久久18免费网站 | 人人看人人爽 | 亚洲精品一区二三区不卡 | av黄色网| 中文字幕免费视频 | 精品国产一区久久 | 欧美精品综合 | 国产乡下妇女做爰 | 久久久青草婷婷精品综合日韩 | 中文精品视频 | 久久爱综合 | 在线观看黄视频 | 久久综合国产精品 | 国产精品99久久久久久大便 | 久久av一区二区三区 | 亚洲精品国产成人 | 精品国产乱码久久久久久牛牛 | 欧美三级在线 | 日韩一二区 |