本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
高 CPU 使用率
高 CPU 使用率是您在使用 Amazon DocumentDB 時可能遇到的問題之一。本節提供解決問題的洞見。
識別 - 找出問題
Amazon DocumentDB 執行個體上的高 CPU 使用率會提高所有資料庫操作的延遲,導致應用程式速度變慢。當 Amazon DocumentDB CPU 用量超過最佳層級時,查詢執行時間會增加、建立連線需要更長的時間,以及應用程式回應能力降低。主要執行個體上的 CPU 峰值會減慢寫入操作,而複本上的峰值會導致讀取操作的延遲較高。
Amazon DocumentDB 中高 CPU 使用率的一些常見原因可能是:
-
集合掃描:沒有適當索引的查詢會強制完整集合掃描,耗用過多 CPU 來檢查每個文件。
-
連線峰值:應用程式連線突然激增,導致身分驗證和工作階段管理所需的 CPU 資源龐大。
-
複雜彙總:多階段操作 (排序、分組、聯結) 會耗用大量 CPU,尤其是在沒有最佳化索引的大型資料集。
-
低效率查詢:掃描大型結果集和 regex 操作會產生高 CPU 使用率。
-
寫入密集型工作負載:頻繁更新和大量插入會對 CPU 造成壓力,包括文件處理、索引更新和交易記錄。
調查 - 收集指標
Amazon DocumentDB 透過 Amazon CloudWatch 提供監控。Amazon DocumentDB 指標可以廣泛分類為叢集層級和執行個體層級指標。對於與 CPU、記憶體和連線相關的資源,請查看執行個體層級指標,因為資源消耗是執行個體特有的。識別顯示 CPU 峰值的執行個體 (主要或複本),並記下峰值的時間。
適用於 的 CPU 使用率的 CloudWatch 指標CPUUtilization。
診斷 - 尋找根本原因
識別 CPU 峰值的執行個體和時間軸之後,接下來是診斷對 CPU 用量造成很大影響的原因。由於有多種原因可能導致 CPU 峰值,因此 讓我們找出造成 CPU 峰值的原因:
連線:檢查 CloudWatch 指標,包括 DatabaseConnections和 DatabaseConnectionsMax,如果連線中有峰值,並且與 CPU 峰值時間一致,則短時間內連線激增可能是 CPU 峰值的原因。
查詢:如果不是連線,則查詢可能是原因。如果您已啟用效能洞察,請前往執行個體的績效洞察主控台,並查看執行個體上的查詢。另一個要查看查詢的事項是來自分析器。
解決 - 修正問題
連線暴增:如果連線暴增是 CPU 峰值的原因,請考慮在應用程式中重複使用連線或實作連線集區。如需最佳化高連線的詳細資訊,請參閱 Amazon DocumentDB 的連線問題。
查詢分佈:如果 CPU 峰值是由主要執行個體上的讀取查詢造成,如果您的查詢結果最終可以一致,請考慮將讀取操作重新導向至複本執行個體。
查詢最佳化:如果查詢或一組查詢導致 CPU 峰值,請考慮最佳化查詢,例如,如果查詢未使用索引,則新增索引。如需最佳化查詢的詳細資訊,請參閱 查詢執行緩慢。
執行個體擴展:如果在最佳化工作後 CPU 使用率持續很高,請升級至具有更多 CPU 容量的大型執行個體類別,以有效地處理您的工作負載需求。
無伺服器:對於造成短期 CPU 尖峰的不可預測工作負載,請考慮使用 使用 Amazon DocumentDB 無伺服器。無伺服器執行個體會根據需求自動擴展資源,無需為此類工作負載佈建固定執行個體大小。