本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Performance Insights 概念
平均作用中工作階段
資料庫負載 (DB 負載) 測量資料庫中的活動程度。績效詳情中的關鍵指標為 DB Load
,每秒收集一次。該DBLoad
指標的單位是 Amazon DocumentDB 執行個體的「平均作用中工作階段」(AAS)。
作用中工作階段是已將工作提交至 Amazon DocumentDB 執行個體並等待回應的連線。例如,如果您將查詢提交至 Amazon DocumentDB 執行個體,則該執行個體正在處理查詢時,資料庫工作階段會處於作用中狀態。
若要取得平均作用中工作階段 (AAS),績效詳情會取樣同時執行查詢的工作階段數目。AAS是工作階段總數除以樣本總數。下表顯示執行中查詢的五個連續範例。
樣本 | 執行查詢的工作階段數目 | AAS | 算式 |
---|---|---|---|
1 |
2 |
2 |
2 個工作階段 / 1 個樣本 |
2 |
0 |
1 |
2 個工作階段 / 2 個樣本 |
3 |
4 |
2 |
6 個工作階段 / 3 個樣本 |
4 |
0 |
1.5 |
6 個工作階段 / 4 個樣本 |
5 |
4 |
2 |
10 個工作階段 / 5 個樣本 |
在上述範例中,從 1-5 之間的時間間隔的「資料庫負載」為 2 AAS。資料庫負載的增加意味著,就平均而言,更多的工作階段正執行於資料庫上。
維度
DB Load
指標與其他時間序列指標不同,因為您可以將它分為名為維度的子元件。您可以將維度視為 DB
Load
指標的不同特性類別。當您診斷效能問題時,最有用的維度是等待狀態和最常用的查詢。
等待狀態
等待狀態會導致查詢陳述式等待特定事件發生,然後才能繼續執行。例如,查詢陳述式可能會等到鎖定的資源解除鎖定為止。通過DB Load
與等待狀態結合,您可以獲得會話狀態的完整圖片。以下是各種 Amazon DocumentDB 等待狀態:
Amazon DocumentDB 等待狀態 | 等待狀態說明 |
---|---|
閂鎖 |
當工作階段正在等待緩衝區集區分頁時,就會發生 Locker 等待狀態。當系統經常處理大型查詢、集合掃描,或緩衝區集區太小而無法處理工作集時,頻繁進出緩衝區集區的分頁可能會更頻繁地發生。 |
CPU |
CPU等待狀態會在工作階段正在等待時發生CPU。 |
CollectionLock |
CollectionLock 等待狀態會在工作階段等候取得集合上的鎖定時發生。當集合上有DDL作業時,就會發生這些事件。 |
DocumentLock |
DocumentLock 等待狀態會在工作階段等待取得文件上的鎖定時發生。同一份文件的大量並行寫入將有助於在該文件上產生更多的 DocumentLock等待狀態。 |
SystemLock |
SystemLock 等待狀態會在工作階段在系統上等待時發生。當系統上有頻繁的長時間運行的查詢,長時間運行的事務或高並發性時,可能會發生這種情況。 |
IO |
IO 等待狀態會在等待 IO 上完成的工作階段時發生。 |
BufferLock |
當工作階段正在 BufferLock 等待取得緩衝區中共用頁面上的鎖定時,就會發生等待狀態。 BufferLock如果其他進程在請求的頁面上保留打開的游標,則等待狀態可以延長。 |
LowMemThrottle |
當工作階段因為 Amazon DocumentDB 執行個體上的記憶體壓力過高而 LowMemThrottle 等待時,就會發生等待狀態。如果此狀態持續很長一段時間,請考慮擴展執行個體以提供額外的記憶體。如需詳細資訊,請參閱資源管理員。 |
BackgroundActivity |
當工作階段正在 BackgroundActivity 等待內部系統處理序時,就會發生等待狀態。 |
其他 |
其他等待狀態是內部等待狀態。如果此狀態持續很長一段時間,請考慮終止此查詢。如需詳細資訊,請參閱如何尋找和終止長時間執行或封鎖的查詢? |
熱門查詢
等待狀態顯示瓶頸,而頂級查詢顯示哪些查詢對數據庫負載的貢獻最大。例如,許多查詢目前可能正在資料庫上執行,但單一查詢可能會耗用 99% 的資料庫負載。在此情況下,高負載可能表示查詢發生問題。
馬克斯 v CPU
在儀表板中,資料庫負載圖表會收集、彙整並顯示工作階段資訊。若要查看作用中階段作業是否超過上限CPU,請查看它們與 Max v CPU 行的關係。最大 v CPU 值取決於您的 Amazon DocumentDB 執行個體的 v CPU (虛擬CPU) 核心數。
如果 DB 負載通常高於 Max v CPU 線,且主要等待狀態為CPU,CPU則會超載。在這種情況下,您可能想要限制與執行個體的連線、調整任何具有高CPU負載的查詢,或考慮使用較大的執行個體類別。處於任何等待狀態的密集且穩定的執行個體表示可能有您應解決的瓶頸或資源爭用問題。即使數據庫負載不跨越 Max v CPU 線,這也可能是正確的。