本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
績效詳情概念
平均作用中工作階段
資料庫負載 (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 等待狀態 | 等待狀態描述 |
---|---|
鎖定 |
當工作階段正在等待分頁緩衝集區時,會發生鎖定等待狀態。當系統經常處理大型查詢、集合掃描,或緩衝集區太小而無法處理工作集時,經常分頁和分頁緩衝集區。 |
CPU |
當工作階段在 CPU 上等待時,會發生 CPU 等待狀態。 |
CollectionLock |
工作階段正在等待取得集合的鎖定時,會發生 CollectionLock 等待狀態。當集合上有 DDL 操作時,就會發生這些事件。 |
DocumentLock |
當工作階段正在等待取得文件鎖定時,會發生 DocumentLock 等待狀態。對相同文件進行大量並行寫入,將導致該文件上有更多 DocumentLock 等待狀態。 |
SystemLock |
當工作階段在系統上等待時,會發生 SystemLock 等待狀態。當系統中經常有長時間執行的查詢、長時間執行的交易或高並行時,就會發生這種情況。 |
IO |
當工作階段在 IO 上等待完成時,會發生 IO 等待狀態。 |
BufferLock |
當工作階段正在緩衝區中的共用頁面上等待取得鎖定時,會發生 BufferLock 等待狀態。如果其他程序在請求的頁面上保留開啟游標,BufferLock 等待狀態可能會延長。 |
LowMemThrottle |
當工作階段因 Amazon DocumentDB 執行個體上的記憶體壓力過大而等待時,會發生 LowMemThrottle 等待狀態。如果此狀態長時間持續存在,請考慮擴展執行個體以提供額外的記憶體。如需詳細資訊,請參閱 Resource Governor。 |
BackgroundActivity |
當工作階段正在等待內部系統程序時,會發生 BackgroundActivity 等待狀態。 |
其他 |
其他等待狀態是內部等待狀態。如果此狀態長時間持續存在,請考慮終止此查詢。如需詳細資訊,請參閱如何尋找和終止長時間執行或封鎖的查詢? |
熱門查詢
雖然等待狀態顯示瓶頸,但熱門查詢會顯示哪些查詢對資料庫載入的影響最大。例如,許多查詢目前可能正在資料庫上執行,但單一查詢可能會耗用 99% 的資料庫負載。在此情況下,高負載可能表示查詢發生問題。
最大 vCPU
在儀表板中,資料庫負載圖表會收集、彙整並顯示工作階段資訊。若要查看作用中的工作階段是否超過最大 CPU,請查看它與最大 vCPU 數線的關係。最大 vCPU 值取決於 Amazon DocumentDB 執行個體的 vCPU (虛擬 CPU) 核心數量。
若資料庫負載通常高於最大 vCPU 數線,而主要等待狀態為 CPU,則 CPU 會超過負載。在此情況下,您可能想要調節執行個體的連線、調整具有高 CPU 負載的任何查詢,或考慮較大的執行個體類別。處於任何等待狀態的密集且穩定的執行個體表示可能有您應解決的瓶頸或資源爭用問題。即使資料庫負載未超過最大 vCPU 數線,仍可能會有上述的問題。