天天看點

自動性能統計資訊(二)(Automatic Performance Statistics)

1.2自動工作負載庫(AWR)概覽

   AWR收集、處理并維護性能統計資訊以用來偵測問題和自我調優。這些資料同時存儲在記憶體和資料庫中。收集的資料既可以呈現在報告中,又可以從視圖中查詢。

    AWR收集的統計資訊包括:

    ·決定對資料庫段的通路和使用量的統計資訊的對象統計資訊

    ·關于活動的基于時間消耗量的時間模型統計資訊,可通路V$SYS_TIME_MODEL和V$SESS_TIME_MODEL視圖

    ·收集在V$SYSSTAT和V$SESSTAT視圖中的一些系統和會話統計資訊

    ·基于一些名額如elapsed time和CPU time,造成了系統最高的負載的SQL語句

    ·ASH統計資訊,展示了 最近會話活動的曆史資訊

    預設可以使用AWR收集資料庫統計資訊,并由參數STATISTICS_LEVEL控制。AWR要能收集統計資訊,該參數必須被設定為 typical或all。該參數預設值是typical。将該參數值設定為basic會禁用許多Oracle資料庫特性,包括AWR,是以不建議這麼做。如果該參數設定為basic,你仍然可以通過DBMS_WORKLOAD_REPOSITORY包手動捕獲AWR統計資訊。然而,因為很多記憶體收集的系統統計資訊——例如段的統計資訊和記憶體指導統計資訊會被禁用,這時候AWR捕獲的資訊就不是完整的了。

    1.2.1快照

    快照是ADDM在特定時間段内收集一系列曆史資料,用來進行性能對比。預設情況下,Oracle資料庫每個小時自動産生一個快照并将統計資訊儲存在工作負載庫中8天。你也可以手動生成快照,但通常沒有這個必要 。在 快照間隔内的資料會交由自動資料庫診斷螢幕(ADDM)分析。

    基于對系統負載産生的影響,AWR通過比較不同快照來确定捕獲哪些SQL語句。這樣減少了必須捕獲的SQL語句數量。

    1.2.2 基線

    基線包含了一個特定時間段内性能資料,儲存在基線中的資料用作出現性能問題時與對應時間段内的性能資料對比。包含在基線中的快照被排除在AWR清理過程之外,會一直儲存。

    Oracle資料庫中有幾類可用的基線:    

    ·固定基線

    ·移動視窗基線

    ·基線模闆

    1.2.2.1 固定基線

    固定基線對應一個由你指定的固定的、連續的過去的時間段。在建立一個固定基線之前,仔細考慮你選擇作為基線的時間段,因為基線應該代表着系統運作在最優的級别。在将來,你可以将基線與其它基線或在性能低下的時段捕獲的快照做比較以分析随着事件流逝性能的下降問題。

    1.2.2.2

    移動視窗基線

    移動視窗基線對應着AWR保留周期内所有的AWR資料。當使用自适應門檻值的時候,移動視窗基線很有用,這是因為資料庫可以使用整個AWR保留周期内的所有AWR資料來計算度量門檻值的值。

    Oracle資料庫自動維護系統定義的移動視窗基線。系統定義的移動視窗基線的預設的視窗大小是目前AWR保留周期,預設是8天。如果你打算 使用自适應門檻值,可以考慮使用一個更大的移動視窗——例如30天——以準确計算出門檻值的值。你可以調整移動視窗基線的大小,通過将移動視窗的值改為AWR保留時間相等或更小的值就行。是以,要增加移動視窗的大小,你首先要做的就是增加相應的AWR保留時間。

    1.2.2.3 基線模闆

    你可以使用基線模闆來為将來的一個連續的時段建立基線。有兩種基線模闆:單個基線模闆和重複基線模闆。

    你可以使用單個基線模闆來為将來單個連續時段建立基線。這個技術對于你事先知道你将要在将來哪個時段捕獲資料很有幫助。例如,你想捕獲在即将到來的周末進行的系統測試時候的AWR資料。這種情況下,你可以建立一個單個基線模闆來自動捕獲測試時的資料。

    你可以使用重複基線模闆來建立并删除基于重複時間日程的基線。這在你想讓Oracle資料庫在一個連續的基礎上自動捕獲連續時間段内的資料時很有用。例如,你想在每個月的每周一早上捕獲AWR資料。這種情況下,你可以為每周一這個重複的日程安排建立一個重複基線模闆來自動建立基線,同時在指定過期間隔的基礎上自動移除舊的基線,例如一個月。

    1.2.3 自适應門檻值

    自适應門檻值使你以最小化管理代價來監控和偵測性能問題。自适應門檻值可以使用由移動視窗基線中捕獲的路徑成本衍生而來的統計資訊來自動設定報警和關鍵報警門檻值。當系統性能随着時間的演進,這些以周為機關進行計算的門檻值的統計資訊可能會産生新的門檻值。除了每周重新計算這些門檻值,自适應門檻值還會基于時間段工作負載模式來為一天或一周内不同時段計算不同的門檻值。

    例如,許多資料庫支援白天聯機事務處理,晚上批處理。每個事務的響應時間這個度量對于白天的聯機事務處理性能下降問題很有價值。然而,一個有用的oltp門檻值對于批處理來收未免太低,批處理運作長時間的事務是很常見的。是以,一個合适的oltp門檻值會在晚上執行批處理的時候頻繁觸發錯誤的性能報警。自适應門檻值能夠檢測到這種工作負載模式并自動為白天和晚上分别設定不同的門檻值。

    有兩種自适應門檻值:

    最大值百分比:門檻值的值從移動視窗基線中的資料觀察到的多個最大值的百分比計算而來。

    重要性等級:門檻值的值根據統計資訊的百分比設定,統計資訊的百分比代表了基于移動視窗基線的觀測值與門檻值相比不尋常的程度。指定下列值之一為百分比:

    high(.95):100次中隻有5次超過期望值

    very high(.99):100次中隻有1次超過期望值

    severe(.999):1000次中隻有1次超過期望值

    extreme(.9999):10000次中隻有1次超過期望值

    注:當你指定severe或extreme時,Oracle資料庫執行一個内部計算來設定門檻值。在某些情況下,Oracle資料庫無法通過基線中的資料來設定這些門檻值的值,同時不會設定重要性級别門檻值。

    如果你沒有按照預期收到報警,同時你指定了severe或extreme的重要性級别門檻值,那麼你可以嘗試着把重要性級别設定的低一點,例如very high或high。作為替代,你也可以設定最大值百分比門檻值而不是重要性級别門檻值。如果你改變門檻值後發現你收到了太多的報警,你可以嘗試着提高發生的次數來設定報警以減少報警次數。

    最大值百分比門檻值在系統處于高峰工作負載時很有用,并且你想在目前工作負載量接近或超過先前最大值時發出報警。那些具體值未知但是具有明确的限制的度量對于這些設定來說的好的候選。例如,每秒産生的redo這個度量是一個典型的最大值百分比門檻值的候選者。

    重要性級别門檻值對于當系統正常運作時顯示出的統計上穩定狀态,當系統性能低下時則波動很大的度量很有用。例如,在調整的很好的oltp系統上,每個事務的平均響應時間度量應該是很穩定的,但當出現性能問題時則會波動得非常厲害。重要性級别門檻值專門用于産生不尋常的路徑成本和不尋常的系統性能問題的情況的報警。

    注:管理基線度量的主要接口是OEM,要為基線度量建立一個自适應門檻值,請使用OEM。

    1.2.4 空間消耗

    AWR消耗的空間取決于下面幾個因素:

    ·在任何給定的時段中系統中的活躍會話數

    ·快照的間隔

    快照的間隔決定了拍攝快照的頻率。一個小的快照間隔會增加頻率,如此增加了AWR收集的資料量。

    ·曆史資料保留時間

    保留時間決定了在資料被清理之前會保留多久。一個較長的保留時間會增加AWR的消耗。

    預設情況下,快照每小時拍攝一次并保留8天。根據預設的設定,一個平均10個并發活躍會話的系統大約需要200到300MB的空間來存放AWR資料。可以該筆那預設的快照間隔和保留時間。

    AWR占用的空間可以通過增加快照間隔和減少快照保留時間來減少。當減少保留時間時,注意有一個Oracle資料庫自管理的特性依賴于AWR資料來正常工作。缺少足夠的資料會影響這些元件和特性的有效性和準确性,包括:

    ·自動資料庫診斷 螢幕

    ·SQL調優指導

    ·undo指導

    ·段指導

    如果可能的話,Oracle建議你将AWR保留時間設定的足夠長,至少足夠來捕獲一個完整的工作負載周期的資料。如果你的系統工作負載循環周期是一周,例如工作日進行oltp周末進行批處理,你不需要改變預設的AWR保留時間。然而如果你的系統是在每個月月末的時候經曆一次高峰負載,那麼你最高 将保留時間設定為1個月。

    在意外情況下,你可以關閉自動快照收集功能,隻要把快照間隔設定為0即可。在這種情況下,工作負載和統計資料的自動收集功能被關閉,很多Oracle資料自管理的功能無法使用。此外,你無法手動建立快照。因為這個原因,Oracle強烈建議不要關閉自動快照收集功能。