本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
監控 Amazon DocumentDB 無伺服器
若要進一步了解 Amazon DocumentDB 中的監控,請參閱 監控 Amazon DocumentDB。
記憶體不足:不相容參數狀態
如果其中一個無伺服器執行個體持續達到容量上限,Amazon DocumentDB 會將執行個體設定為不相容參數的狀態,以指出此條件。如需詳細資訊,請參閱避免記憶體不足錯誤。
DocumentDB Serverless 的 Amazon CloudWatch 指標
若要進一步了解如何搭配 Amazon DocumentDB 使用 CloudWatch,請參閱 使用 CloudWatch 監控 Amazon DocumentDB 。
您可以在 CloudWatch 中檢視無伺服器執行個體,以使用 ServerlessDatabaseCapacity
指標監控每個執行個體耗用的容量。您也可以監控所有標準 DocumentDB CloudWatch 指標,例如 DatabaseConnections
和 查詢。如需您可以為 Amazon DocumentDB 監控的 CloudWatch 指標完整清單,請參閱 使用 CloudWatch 監控 Amazon DocumentDB 。下列 CloudWatch 執行個體層級指標對於監控您了解 DocumentDB 無伺服器執行個體如何向上和向下擴展非常重要。所有這些指標每秒計算一次。如此一來,您就可以監控無伺服器執行個體的目前狀態。您可以設定警示,以便在任何無伺服器執行個體接近容量相關指標的閾值時通知您。您可決定最小和最大容量設定是否合適,或者是否需要進行調整。您可決定將精力集中於最佳化您資料庫效率之處。
ServerlessDatabaseCapacity
— 做為執行個體層級指標,它會報告目前執行個體容量所代表的 DCUs 數量。做為叢集層級指標,代表叢集中所有 DocumentDB 無伺服器執行個體ServerlessDatabaseCapacity
的值平均值。DCUUtilization.
— 此指標是 DocumentDB 無伺服器的新指標。此值以百分比表示。其計算方式為ServerlessDatabaseCapacity
指標值除以叢集的最大 DCU 值。請考慮下列指導方針來解譯此指標並採取行動:如果此指標接近 的值
100.0
,則執行個體已盡可能向上擴展。考慮增加叢集的最大 DCU 設定。如此一來,寫入器和讀取器執行個體都可以擴展到更高的容量。假設唯讀工作負載會導致讀取器執行個體接近
DCUUtilization
的100.0
,而寫入器執行個體並未接近其最大容量。在此情況下,請考慮將其他讀取器執行個體新增至叢集。如此一來,您可以將工作負載的唯讀部分分散到更多執行個體,以減少每個讀取器執行個體的負載。假設您正在執行生產應用程式,其中效能和可擴展性是主要考慮因素。在這種情況下,您可以將叢集的最大 DCU 值設定為高數字。您的目標是讓
DCUUtilization
指標一律低於 100.0。使用高最大 DCU 值,您可以確信有足夠的空間,以防資料庫活動發生意外尖峰。您僅需為實際使用的資料庫容量付費。
CPUUtilization
— 此指標的解譯方式 DocumentDB 與佈建執行個體中的解譯方式不同。對於 DocumentDB 無伺服器,此值是百分比,計算方式為目前使用的 CPU 數量,除以叢集最大 DCU 值下可用的 CPU 容量。Amazon DocumentDB 會自動監控此值,並在執行個體持續使用高比例的 CPU 容量時擴展無伺服器執行個體。如果此指標接近 的值
100.0
,則執行個體已達到其 CPU 容量上限。考慮增加叢集的最大 DCU 設定。如果此指標接近讀取器執行個體100.0
上的 值,請考慮將其他讀取器執行個體新增至叢集。如此一來,您可以將工作負載的唯讀部分分散到更多執行個體,以減少每個讀取器執行個體的負載。FreeableMemory
— 此值代表當 DocumentDB 無伺服器執行個體擴展至其最大容量時可用的未使用記憶體數量。對於目前容量低於最大容量的每個 DCU,此值會增加約 2 GiB。因此,此指標在盡可能地縱向擴展執行個體之前不會接近零。如果此指標接近零的值,則執行個體已盡可能向上擴展,並接近其可用記憶體的限制。考慮增加叢集的最大 DCU 設定。如果此指標在讀取器執行個體上接近零的值,請考慮將其他讀取器執行個體新增至叢集。如此一來,工作負載的唯讀部分就可以分散到更多執行個體,減少每個讀取器執行個體的記憶體用量。
TempStorageIops
— 在連接至執行個體的本機儲存上完成的 IOPS 數量。其包括讀取和寫入的 IOPS。此指標表示計數,且每秒測量一次。這是 DocumentDB Serverless 的新指標。如需詳細資訊,請參閱使用 CloudWatch 監控 Amazon DocumentDB 。TempStorageThroughput
— 與執行個體相關聯的本機儲存體往返傳輸的資料量。此指標表示位元組,且每秒測量一次。這是 DocumentDB Serverless 的新指標。如需詳細資訊,請參閱使用 CloudWatch 監控 Amazon DocumentDB 。
一般而言,大多數的 DocumentDB 無伺服器執行個體擴展都是由記憶體用量和 CPU 活動造成。TempStorageIops
和 TempStorageThroughput
指標可協助您診斷極少數情況下,執行個體與本機儲存裝置之間傳輸的網路活動會導致意外容量增加。如要監控其他網路活動,您可使用以下現有指標:
NetworkReceiveThroughput
NetworkThroughput
NetworkTransmitThroughput
StorageNetworkReceiveThroughput
StorageNetworkThroughput
StorageNetworkTransmitThroughput
DocumentDB 無伺服器 CloudWatch 指標如何套用至您的 AWS 帳單
AWS 帳單上的 DocumentDB 無伺服器費用是根據您可以監控的相同ServerlessDatabaseCapacity
指標來計算。如果您僅在一小時中使用 DocumentDB 無伺服器容量,則計費機制可能與此指標的計算 CloudWatch 平均值不同。若系統問題造成 CloudWatch 指標在短時間內無法使用,其亦可能會有所不同。因此,與從ServerlessDatabaseCapacity
平均值自行計算數字時相比,您可能會在帳單上看到略有不同的 DCU 小時值。
DocumentDB 無伺服器指標的 Amazon CloudWatch CLI 命令範例
下列 AWS CLI 範例示範如何監控與 DocumentDB Serverless 相關的最重要 CloudWatch 指標。在每個案例中,將 --dimensions
參數的Value=
字串取代為您自己的 DocumentDB 無伺服器執行個體的識別符。
下列 Linux 範例顯示執行個體的最小、最大和平均容量值,在一小時內每 10 分鐘測量一次。Linux 日期命令會指定相對於目前日期和時間的開始和結束時間。--query
參數中的 sort_by
函數依據 Timestamp
欄位依時間順序對結果進行排序。
aws cloudwatch get-metric-statistics \ --metric-name "ServerlessDatabaseCapacity" \ --start-time "$(date -d '1 hour ago')" \ --end-time "$(date -d 'now')" \ --period 600 \ --namespace "AWS/DocDB" \ --statistics Minimum Maximum Average \ --dimensions Name=DBInstanceIdentifier,Value=
my_instance
\ --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \ --output table
下列 Linux 範例示範監控叢集中執行個體的容量。它測量執行個體的最小、最大和平均容量使用率。在三個小時內每小時進行一次測量。這些範例使用代表 DCUs 上限百分比的DCUUtilization
指標,而不是ServerlessDatabaseCapacity
代表固定數量DCUs。如此一來,您就不需要知道容量範圍內最小和最大 DCU 值的實際數字。您可看到從 0 到 100 的百分比。
aws cloudwatch get-metric-statistics \ --metric-name "DCUUtilization" \ --start-time "$(date -d '3 hours ago')" \ --end-time "$(date -d 'now')" \ --period 3600 \ --namespace "AWS/DocDB" \ --statistics Minimum Maximum Average \ --dimensions Name=DBInstanceIdentifier,Value=
my_instance
\ --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \ --output table
下列 Linux 範例執行與先前測量類似的測量。於此狀況下,測量適用於 CPUUtilization
指標。在 1 小時內每 10 分鐘進行一次測量。這些數字代表使用之可用 CPU 的百分比,以執行個體最大容量設定的可用 CPU 資源為基礎。
aws cloudwatch get-metric-statistics \ --metric-name "CPUUtilization" \ --start-time "$(date -d '1 hour ago')" \ --end-time "$(date -d 'now')" \ --period 600 \ --namespace "AWS/DocDB" \ --statistics Minimum Maximum Average \ --dimensions Name=DBInstanceIdentifier,Value=
my_instance
\ --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \ --output table
下列 Linux 範例執行與先前測量類似的測量。於此狀況下,測量適用於 FreeableMemory
指標。在 1 小時內每 10 分鐘進行一次測量。
aws cloudwatch get-metric-statistics \ --metric-name "FreeableMemory" \ --start-time "$(date -d '1 hour ago')" \ --end-time "$(date -d 'now')" \ --period 600 \ --namespace "AWS/DocDB" \ --statistics Minimum Maximum Average \ --dimensions Name=DBInstanceIdentifier,Value=
my_instance
\ --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \ --output table
使用績效詳情監控 DocumentDB 無伺服器效能
您可以使用 Performance Insights 來監控 DocumentDB 無伺服器執行個體的效能。如需有關績效詳情的程序,請參閱 使用績效詳情進行監控。
下列新的績效詳情計數器適用於 DocumentDB 無伺服器執行個體:
os.general.serverlessDBCapacity
— DCUs 中執行個體的目前容量。此值對應至執行個體的ServerlessDatabaseCapacity
CloudWatch 指標。os.general.dcuUtilization
— 目前容量超出最大設定容量的百分比。此值對應至執行個體的DCUUtilization
CloudWatch 指標。os.general.maxConfiguredDcu
— 您為此 DocumentDB 無伺服器執行個體設定的容量上限。它以 DCUs測量。os.general.minConfiguredDcu
— 您為此 DocumentDB 無伺服器執行個體設定的最小容量。它以 DCUs測量。
如需績效詳情計數器的完整清單,請參閱 計數器指標的績效詳情。
在績效詳情中顯示 DocumentDB 無伺服器執行個體的 vCPU 值時,這些值代表根據執行個體 DCU 值的預估值。在預設的一分鐘間隔中,任何小數 vCPU 值皆會無條件進位至最接近的非負整數。若為較長的時間間隔,顯示的 vCPU 值為每分鐘整數 vCPU 值的平均值。