Oracle 10g AWR Report 分析(轉)
Oracle 10g 提供了一個新的效能採集和分析工具awr(automaticworkload repository)。
Awr存在於sysaux表空間,是sysaux的主要佔用者之一。
快照,在特定時間捕獲的一組效能統計資訊,用於計算統計資訊的更改率。每個快照由snap_id進行標識。
預設快照每60分鐘生成一次。保留7天。
Awr快照集,一種用於標記和保留重要時段快照集資料的機制。一個快照集定義一對快照(兩個快照)。快照集用於保留快照資料。在刪除快照集之前,屬於快照集的快照會一直存在。
一般情況下,可以將具有代表性的時段設定為快照集,以便用於與當前系統行為進行比較。
Awr compare periods 用於比較awr中兩個時段。Awr顯示兩個快照(兩個時間點)之間的awr資料,而awr compare periods 顯示兩個時段即兩個awr report(相當於四個快照)之間的差異。根據兩個時段之間報告的更改,可準確診斷效能降低的原因。
生成awr report,可執行$ORACLE_HOME/rdbms/admin/awrrpt.sql。
Awr快照設定,使用dbms_workload_repository.modify_snapshot_settings()。
生成awr快照集,可使用dbms_workload_repository.create_baseline ()。
生成awr compare periods,可執行$ORACLE_HOME/rdbms/admin/awrddrpt.sql。
Awr report 分析-CPU繁忙程度與CPU使用率
Sessons:採集時例項連線的會話數。
Cursors/Session:每個會話平均開啟的遊標數。
Elapsed:取樣時間。
DB Time:代表了例項的工作負載,在時間模型統計中非常重要。
DB Time表示使用者操作花費的時間,包括cpu時間(非後臺程式花費時間(比如PMON))和等待時間(非空閒等待時間)。
如果DB Time接近於Elapsed Time*cpu數,表明資料庫比較忙,cpu負載也許比較大。這時很有可能是因為資源爭用導致等待事件的結果,可以去top 5等待事件分析原因。
可以在Time Model Statistics部分獲取DB Time的值與DB CPU的值。DB CPU 指使用者操作的總的CPU時間,同樣不包括後臺程式花費的CPU時間(比如PMON)。那麼DB Time去除掉DB CPU是不是就應該是等待時間?應該是,於是公式DB Time=DB CPU + 等待時間。
V$SESS_TIME_MODEL
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2087.htm#REFRN30340
看一下系統統計部分:
從這部分資訊可以看出我們系統的CPU情況與記憶體等資訊。
SYS_TIME與USER_TIME之和 1776 +4834 = 6610 正好等於BUSY_TIME,再者(6610 + 719387)/100/60/2 = 60.49975 ,這不是我們的取樣時間嗎?2代表兩個cpu(NUM_CPUS)。上面提到DB CPU不包括後臺程式花費的時間(比如PMON),而在Time Model Statistics中顯示出了後臺程式CPU時間(backgroundcpu time)。所以資料庫的整體 cpu 使用情況可以這樣計算吧,cpu使用率 = ( DB CPU + background cpu time ) / (Elapsed *NUM_CPUS) * 100% = ( 19.45 + 7.08 ) / ( 60.45mins * 2 )* 100% = 0.00366 % 。看來我們的系統很閒呀,我應該在系統稍微忙點的時候取一份report來分析。
V$OSSTAT
http://download.oracle.com/docs/cd/B19306_01/server.102/b14237/dynviews_2010.htm#REFRN30321
Awr report 分析-IO stats
效能指標說明:
Reads: 發生了多少次物理讀。
Av Reads/s : 每秒鐘物理讀的次數。
Av Rd(ms):
平均一次物理讀的時間(毫秒),有一種說法是如果這個值大於7說明系統有嚴重的I/O問題,也有人說這個值不應該超過30,否則IO也可能有問題。硬體不同對IO瓶頸的判斷也會相應的改變。
Av Blks/Rd:每次讀多少個資料塊。
Writes:發生了多少次寫。
Av writes/s:每秒寫的次數。
Buffer Waits:獲取記憶體資料塊等待的次數。
Av Buf Wt(ms):獲取記憶體資料塊平均等待時間。
V$FILESTAT
http://docs.oracle.com/cd/B19306_01/server.102/b14237/dynviews_1107.htm#REFRN30087
IOPS (Input/Output Operations Per Second),即每秒進行讀寫(I/O)操作的次數。
MBPS也就是頻寬,每秒傳輸的位元(資料量),一個位元組8位元(bit)。比如:4Mbps=每秒鐘傳輸4M位元。
IOPS計算:
IOPS = Av Reads/s + Av Writes/s
MBPS計算:
MBPS=(Physical reads +Physical writes)* block_size =(0.12 + 0.28 )*塊大小
MBPS的的指標在 Load Profile 或 Instance ActivityStatistics 部分分別對應Physical reads 與Physical writes 或 physical writes 與 physicalreads。
相關描述說明:
Statistics Descriptions
http://docs.oracle.com/cd/B19306_01/server.102/b14237/stats002.htm#i375475
同樣一個系統,我們可以設定一個基線作為依據,也可以判斷出IO效能是否出現了問題,比如,在系統執行效能良好的時候做一個基線,當系統IO效能很差時,我們可以取一份report,然後對比兩個report的效能指標,這樣就可以準確診斷當前IO對效能的影響。
Awr report 分析-oracle 記憶體元件大小
在awr report中顯示了oracle對各個記憶體元件大小的效能估算,包括Buffer Pool Advisory,PGA Memory
Advisory,Shared Pool Advisory,SGATarget Advisory。
先看一下Report Summary裡這方面的資訊:
指標說明:
Memory Usage %:表示共享池記憶體使用率,應保持在75到90之間,如果太小說明分配的共享池過大,如果>90說明共享池中有爭用,共享池記憶體不足。
% SQL with executions>1:執行次數大於1的SQL語句的比率,太小的話要結合Parse,看看是不是有硬編碼現象,避免過多的sql硬解析。
% Memory for SQL w/exec>1:執行次數大於1的SQL語句所消耗的記憶體,佔所有SQL語句消耗記憶體的比率。
指標說明:
Size for Est (M):oracle 估算buffer pool的大小。
Size Factor:估算值與實際值的一個比例,比如0.9,代表估算值是實際值大小的90%,1.0代表buffer pool的實際大小。
Buffers for Estimate:估算的buffer pool的大小(數量)。
Est Phys Read Factor:估算的物理讀的影響因子,是估算物理讀和實際物理讀的一個比例,1.0代表實際的物理讀。
Estimated Physical Reads:估算的物理讀的次數。
可以看出系統的實際bufferpool的大小是380M(Size Factor=1.0)。我們應該找到SizeFactor的改變對物理讀影響最大的點,即Size Factor=0.66的點。從Size Factor=0.57的物理讀次數391999降到Size Factor=0.66的物理讀次數414222,以後物理讀的變化很小,或基本沒有變化。即buffer pool為252M時,效率是最高的。
指標說明:
PGA Target Est (MB):估算PGA 的大小。
Size Factr:影響因子。
W/A MB Processed:oracle為了產生估算處理的資料量。
Estd Extra W/A MB Read/ Written to Disk:處理資料中需要物理讀寫的資料量。
Estd PGA Cache Hit %:估算的PAG命中率。
Estd PGA Overalloc Count:需要在估算的PGA大小下額外分配記憶體的次數。
這份資料沒有任何代表性!這裡需要掌握兩個點:1)oracle估算的PGA大小不會導致額外分配記憶體的點。2)物理讀寫值(Estd Extra W/A MB Read/ Written to Disk)不再增加的點。不過還要考慮當前記憶體是否充足。
指標說明:
Shared Pool Size(M):估算的共享池大小。
SP Size Factr:影響因子。
Est LC Size (M) :估算的庫快取記憶體佔用的大小。
Est LC Mem Obj:快取記憶體中的物件數。
Est LC Time Saved (s) :需要額外將物件讀入共享池的時間。
Est LC Time Saved Factr:額外將物件讀入共享池的時間影響因子。
Est LC Load Time (s) :分析所花費的時間。
Est LC Load Time Factr:分析花費事件的影響因子。
Est LC Mem Obj Hits:記憶體中物件被發現的次數。
這裡主要看Est LC Time Saved Factr這一列,它表示將物件讀入共享池的影響情況,當這個值變化很小或不變的時候,增加shared pool的值就沒有太大意義了。這樣看來,這裡應該將shared pool 設定為80M。共享池設定大了,這正好驗證了Shared Pool Statistics中Memory Usage %列說明。
指標說明:
SGA Target Size (M):估算的SGA大小。
SGA Size Factor:影響因子。
Est DB Time (s):估算的SGA大小計算出的DB TIME。
Est Physical Reads:估算的物理讀次數。
同樣找到影響最大的點,即Size Factor=0.75的點。
Awr report 分析-其它
OLTP系統中必須關注的兩個效能指標是LibraryHit與Buffer Hit。Library Hit指共享池中sql解析的命中率; Buffer Hit指記憶體資料塊命中率。
關於這兩項效能指標可以檢視:
oracle SharedPool優化思路http://www.linuxidc.com/Linux/2011-07/38912.htm
oracle Buffer Cache優化思路http://www.linuxidc.com/Linux/2011-11/48052.htm
SQL ordered by Elapsed Time
image
這部分以sql消耗時間降序排列。
指標說明:
Elapsed Time (s):該條sql消耗的總時間。
CPU Time (s):該條sql花費的總cpu時間。
Executions:該條sql執行次數。
Elap per Exec (s):該條sql執行一次消耗的平均時間。
% Total DB Time:該條sql消耗總時間(ElapsedTime)佔資料庫時間(DB Time)的百分比。
SQL ordered by CPU Time
% Total DB Time is the Elapsed Time of theSQL statement divided into the Total Database Time multiplied by 100
這部分以sql消耗的cpu時間降序排列。
指標說明:略
SQL ordered by Gets
image
這部分以sql獲取記憶體資料塊的數量降序排列。
指標說明:
Buffer Gets:sql獲取記憶體資料塊總數量。
Executions:sql執行次數。
Gets per Exec:sql執行一次獲取記憶體資料塊數量。
%Total:佔記憶體資料塊的百分比。
CPU Time (s) :sql花費的總cpu時間。
Elapsed Time (s):sql消耗的總時間。
SQL ordered by Reads
這部分以sql物理讀降序排列。
SQL ordered by Executions
這部分列出sql執行次數資訊。
指標說明:
Rows Processed:sql處理的總記錄數。
Rows per Exec CPU per Exec (s):sql每次執行處理的記錄數。
OLTP可以關注,OLAP無須關注(因為sql重複執行的頻率很低)。
SQL ordered by Parse Calls
這部分列出sql被分析次數(不區分硬分析與軟分析)的資訊。
指標說明:
Parse Calls:sql分析的次數。
% Total Parses:佔總分析次數的百分比。
SQL ordered by Sharable Memory
這部分列出sql佔用library cache大小的資訊。
指標說明:
Sharable Mem (b):佔用librarycache的大小。
SQL ordered by Version Count
這部分列出sql版本數資訊。
指標說明:
Version Count:sql版本數。
OLTP可以關注。
SQL ordered by Cluster Wait Time
這部分列出叢集等待時間資訊。
指標說明:
Cluster Wait Time(s):叢集等待時長。
CWT% of Elapsd Time:叢集操作等待時長佔總時長(ElapsdTime(s))的百分比。
本篇文章來源於 Linux公社網站(www.linuxidc.com) 原文連結:http://www.linuxidc.com/Linux/2011-11/48053p4.htm
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21584437/viewspace-716171/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 10g AWR 報告分析Oracle 10g
- 【轉】ORACLE 10G AWR 相關Oracle 10g
- statspack report分析(AWR也可參考)
- 轉載Friend Life for Oracle的Oracle 10g,AWR,AWR,ADDM最佳實踐Oracle 10g
- ORACLE 10G AWR 速查!Oracle 10g
- Awr Report Memory Advisory分析介紹
- oracle 10G特性之awrOracle 10g
- Oracle 10g,AWR,AWR,ADDM最佳實踐Oracle 10g
- Oracle 10g AWR安裝使用Oracle 10g
- oracle 10g AWR介紹(ZT)Oracle 10g
- [Shell] 自動生成oracle awr report並mail出來OracleAI
- 轉載oracle awrOracle
- oracle 10g awr報告的收集Oracle 10g
- oracle 10g 禁用和解除安裝AWROracle 10g
- oracle 10g awr效能收集工具的用法Oracle 10g
- oracle 10g以上版本,awr報告使用Oracle 10g
- 轉載Oracle AWR速查Oracle
- 透過AWR REPORT 或 ADDM REPORT進行SQLTUNESQL
- oracle AWR報告提取分析Oracle
- 【BUG】Oracle12c tablespace io statistics missing from awr reportOracle
- ORACLE AWR報告詳細分析Oracle
- [shell] execute remote Script自動生成oracle awr report並mail出來REMOracleAI
- Script to generate AWR report from remote sql clientREMSQLclient
- oracle 10g分析函式最終版(轉)Oracle 10g函式
- 10G新特性 - AWR
- oracle分析函式之ratio_to_reportOracle函式
- Oracle AWR報告分析之–SQL ordered byOracleSQL
- ORACLE10G AWR使用和分析Oracle
- AWR Report 自動生成指令碼 [final]指令碼
- 轉載詳細的Oracle ASH/AWR介紹及報告分析Oracle
- 【聽海日誌】之ORACLE 10G AWR安裝使用Oracle 10g
- oracle小知識點5--通過dbms_workload_repository.awr_report_html產生awr報告OracleHTML
- Oracle的AWR報告分析(簡潔版)Oracle
- ORACLE AWROracle
- Oracle AWR ---Oracle
- oracle awrOracle
- statspack report分析
- 10g awr與statspack區別