資料庫效能調整的關鍵概念 - Amazon DevOps Guru

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

資料庫效能調整的關鍵概念

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 用等待事件進行調整。