本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
資料庫效能調整的關鍵概念
DevOpsRDS 大師假設您熟悉幾個關鍵的效能概念。若要進一步了解這些概念,請參閱 Amazon Aurora 使用者指南中的效能洞見概觀或 Amazon RDS 使用者指南中的 Performance Insights 概觀。
指標
指標代表按時間順序排列的資料集點。您可以將指標視為要監控的變數,且資料點代表該變數隨著時間的值。Amazon RDS 可即時為資料庫和執行資料庫執行個體所在的作業系統 (OS) 提供指標。您可以在 Amazon RDS 主控台上檢視 Amazon RDS 資料庫執行個體的所有系統指標和處理資訊。 DevOpsRDS 的 Guru 監視器,並為其中一些指標提供見解。如需詳細資訊,請參閱在 Amazon Aurora 叢集中監控指標或在 Amazon 關聯式資 Amazon Relational Database Service 執行個體中監控指標。
問題偵測
DevOpsGuru for RDS 使用數據庫和操作系統(OS)指標來檢測關鍵的數據庫性能問題,無論這些問題是即將發生還是持續發生。RDS 問題檢測的工作 DevOps原理有兩種主要方法:
使用臨界值
使用異常
偵測臨界值的問題
臨界值是評估監督測量結果時所依據的邊界值。您可以將臨界值視為量度圖表上的水平線,分隔正常行為與潛在有問題的行為。 DevOpsGuru for RDS 會透過分析指定資源可能有問題的層級來監控特定指標並建立閾值。 DevOps然後,當新的指標值在指定時間段內一致地跨過指定的閾值時, DevOpsGuru for RDS 會在 Guru 主控台中建立見解。這些見解包含防止 future 資料庫效能影響的建議。
例如, DevOpsGuru for RDS 可能會在 15 分鐘內使用磁碟監控暫存資料表的數目,並在每秒使用磁碟的暫存資料表速率異常高時建立深入解析。提高磁碟上臨時資料表使用量層級可能會影響資料庫效能。 DevOpsGuru for RDS 可協助您採取糾正措施來預防問題,在這種情況變得關鍵之前公開這種情況。
偵測異常問題
雖然閾值提供了一種簡單而有效的方法來檢測數據庫問題,但在某些情況下它們是不夠的。考慮因為已知的處理程序 (例如每日報告工作),因此量度值會尖峰並定期進入潛在有問題的行為的情況。由於預計會出現這種峰值,因此為每個人創建見解和通知將適得其反,並可能導致警報疲勞。
不過,仍然需要偵測非常不尋常的尖峰,因為指標遠高於其餘或持續時間更長,可能代表真正的資料庫效能問題。為了解決此問題, DevOpsGuru for RDS 會監控某些指標,以偵測指標的行為何時變得非常不尋常或異常。 DevOpsGuru 然後在洞察中報告這些異常情況。
例如, DevOpsGuru for RDS 可能會在資料庫負載不僅很高時建立洞察,而且也明顯偏離其通常的行為,這表示資料庫作業的重大意外速度降低。 DevOpsGuru for RDS 只辨識異常的資料庫負載尖峰,讓您專注於真正重要的問題。
資料庫負載
資料庫調整的關鍵概念是資料庫負載 (DB 載入) 量度。數據庫負載表示數據庫在任何給定時間的繁忙程度。數據庫負載的增加意味著數據庫活動的增加。
資料庫工作階段代表應用程式與關聯式資料庫的對話。使用中的工作階段是執行資料庫要求程序中的工作階段。工作階段處於作用中是指工作階段正在 CPU 上執行,或等待資源變成可用以繼續執行。例如,作用中的工作階段可能等待分頁讀入記憶體中,然後從分頁讀取資料時耗用 CPU。
Performance Insights 中的量DBLoad
度是以平均作用中工作階段 (AAS) 來衡量。若要計算 AAS,Performance Insights 每秒會抽樣使用中工作階段的數目。針對特定期間,AAS 是作用中階段作業的總數除以抽樣總數。AAS 值為 2 表示平均而言,在任何給定時間,請求中有 2 個工作階段都處於作用中狀態。
倉庫中的活動可比喻為資料庫負載。假設倉庫僱用 100 名工人。如果有 1 份訂單進來,則 1 名工人履行訂單,其他工人閒置。如果有 100 個或更多的訂單進來,則所有 100 名員工同時履行訂單。如果您定期抽樣特定時段內有多少作用中的工人,則可以算出平均的作用中工人數目。計算結果指出平均隨時都有 N 名工人忙於履行訂單。如果昨天平均 50 名工人,今天平均 75 名工人,則表示倉庫中的活動程度上升。同樣地,資料庫負載會隨著工作階段活動增加而提高。
若要進一步了解,請參閱 Amazon Aurora 使用者指南中的資料庫負載或 Amazon RDS 使用者指南中的資料庫負載。
等待事件
wait 事件是一種資料庫檢測類型,會告訴您資料庫工作階段正在等待哪些資源,以便繼續進行。當 Performance Insights 計算作用中工作階段以計算資料庫負載時,它也會記錄造成作用中工作階段等待的等待事件。此技術可讓 Performance Insights 顯示哪些等待事件會導致資料庫負載。
每個使用中的工作階段都在 CPU 上執行或等待中。例如,工作階段會在搜尋記憶體、執行計算或執行程序程式碼時消耗 CPU。當工作階段不消耗 CPU 時,它們可能正在等待讀取資料檔案或將記錄寫入。工作階段等待資源越久,在 CPU 上執行的時間就越短。
當您調整資料庫時,您通常會嘗試尋找工作階段正在等待的資源。例如,兩個或三個等待事件可能佔資料庫負載的 90%。此量值表示作用中工作階段平均花最多時間等待少量資源。如果您能找出這些等待的原因,則可以嘗試解決問題。
以倉庫工人的比喻為例。進來的訂單是買一本書。工人可能延遲履行訂單。例如,不同的工作人員目前可能正在重新進貨架,或者可能無法使用手推車。或者,用來輸入訂單狀態的系統可能很慢。工人等待的時間越長,訂單履行所需的時間就越長。等待是倉儲工作流程的自然組成部分,但如果等待時間過長,生產力會降低。同樣地,重複或冗長的工作階段等待會降低資料庫效能。
如需有關 Amazon Aurora 中等待事件的詳細資訊,請參閱亞馬 Amazon Aurora Aurora 使用者指南中的使用等待事件進行調整 Aurora Postgre SQL 和使用等待事件進行調整。
如需有關其他 Amazon RDS 資料庫中等待事件的詳細資訊,請參閱 Amazon RDS 使用者指南中的 PostgreSQL 用等待事件進行調整。