cpu time 分析
kamus在他的blog10gRAC培訓 - 2 and last。說到了這個cpu time,具體可以看正文以及下面我與他的留言,他的意思其實就是:
CPU Time相對於其它等待事件,應當先忽略CPU Time,處理其它等待事件。而且cpu time高一般代表是好事情,因為系統並沒有把時間耗費在Wait上。Elapsed Time = CPU Time + Wait Time,所以甚至我們可以說CPU Time越高越好。
不是說他的不對,只是比較覺得這句話太容易誤導別人,所以,給一些補充建議,我同意如果有很明顯的其它事件,而cpu time不明顯的時候,可以優先處理其它事件。但是,還有以下2個地方需要注意:
1、cpu time高一般代表系統的邏輯讀大,或者是高計算型的東西,如case函式,decode函式,自定義的計算型別函式等等,把cpu給耗光了,但是這個時候可能根本沒有其它等待事件。這樣是否證明這個系統很好呢?很可能是,非常不好,因為他很有可能沒有必要有這麼多的邏輯多,或者是,沒有必要有這麼多的cpu密集型計算就可以完成的任務,現在消耗這麼CPU Time就是不正常的,很容易導致系統負載異常。
2、至於wait time,比如OLTP環境上最典型的db file sequential read引起的等待,是因為發生了物理io而引起的,而很多時候,物理讀是隨邏輯讀增加而增加的,而邏輯讀可能會導致cpu time高,也就是說,cpu time與wait time一般是同時增加的。特別是比較高訪問量,大資料量,大SGA的系統,邏輯讀與物理讀都比較高,除了cpu time與db file sequential read,可能不會有很明顯的其它等待事件,而優化的結果可能是cpu time與wait time同時減少。
既然說到了db file sequential read,也解釋一下這個事件,與cpu time一樣,很多時候說明系統是比較正常的,一個優化非常良好的系統,很可能第一個等待事件就是它。因為沒有一個系統,不會發生任何物理IO,既然有物理IO,當然db file sequential read就是最好的了,一般表示讀資料正常。同樣的理由,db file sequential read大了,也可能預兆系統有不該有的物理讀發生了。
如一個看起來很正常的sql語句,單個語句效率看起來並不差,執行時間已經小於0.01秒。假定原來邏輯讀每個語句平均是100個,物理讀平均10個,執行次數每小時50萬次,優化完成以後,邏輯讀降低為平均50個,物理讀平均5個,那麼,每小時降低的邏輯讀總量就是50*50w=2500w個,降低的物理讀為5*50w=250w個。那麼再假定每個cpu每秒處理100000個邏輯讀就達到了極限,每個物理讀需要等待8ms,那麼,就可以減少約2500w/100000*3600=7%的CPU使用率(單CPU),可以減少250w*8ms=20000秒的總io wait time。
同理,如果能採用同樣的方法,減少執行次數從每小時50w到每小時25w,則收到的效果是一樣的。
評價這個cpu time與db file sequential read是否正常,需要很多調優的經驗,不過,需要記住的是,任何情況下,不要絕對的說好還是不好。最好的方式就是從statspack或者是awr上看看,排在cpu time,或者是物理讀top的語句,他們是否應當有這麼大的消耗,他們是否應當執行這麼多的次數。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/235507/viewspace-691466/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- CPU效能分析
- Best Time to Buy and Sell Stock系列分析
- Unity效能分析(二)CPU/GPU分析UnityGPU
- CPU效能分析工具原理
- 效能分析之CPU分析-從CPU呼叫高到具體程式碼行(JAVA)Java
- 效能分析之CPU分析-從CPU呼叫高到具體程式碼行(C/C++)C++
- Ghost Push —— Monkey Test & Time Service病毒分析報告
- 大資料分析筆記 (7) - 時間序列分析(Time Series Analysis)大資料筆記
- 第 74 期 time.Timer 原始碼分析 (Go 1.14)原始碼Go
- CPU持續100%分析並解決
- time time_t tm用法
- 別想宰我,怎麼檢視雲廠商是否超賣?詳解 cpu steal time
- Vivado實戰—單週期CPU指令分析
- .netcore利用perf分析高cpu使用率NetCore
- iOS使用Instrument Time Profiler工具分析和優化效能問題iOS優化
- DREAM TIME
- 效能調優(cpu/IO/JVM記憶體分析)JVM記憶體
- 2020.10.6 效能課堂筆記-cpu 瓶頸分析筆記
- 如何進行Linux CPU中的Kernel space分析Linux
- 20 compliments that needs to be said to my girl from time to timeAI
- 效能分析(6)- 如何迅速分析出系統 CPU 的瓶頸在哪裡
- Aheadof Time Compilation(AOT) vs (JIT)Just In Time compilation approachAPP
- python parse timePython
- Time Series DatabasesDatabase
- jenkins trigger by timeJenkins
- 以太坊原始碼分析(42)miner挖礦部分原始碼分析CPU挖礦原始碼
- 如何迅速分析出系統CPU的瓶頸在哪裡?
- 執行sed命令卡死CPU消耗100%一例分析
- MySQL資料庫SYS CPU高的可能性分析MySql資料庫
- 雲吞鋪子:RDS for MySQL CPU效能問題分析3MySql
- 雲吞鋪子:RDS for MySQL CPU效能問題分析2MySql
- Node.js 應用高 CPU 佔用率的分析方法Node.js
- 資料庫伺服器CPU不能全部利用原因分析資料庫伺服器
- GORM 自定義time.time日期時間輸出格式GoORM
- 【知識分析】伺服器雙路cpu裝什麼系統,雙路伺服器CPU是什麼意思?雙路CPU是什麼?伺服器
- [LeetCode] Employee Free TimeLeetCode
- Oracle Cluster Time ManagementOracle
- HTML <time> 標籤HTML
- golang的time使用Golang