使用 Amazon CloudWatch 指標分析 Aurora 的資源使 PostgreSQL - Amazon Aurora

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

使用 Amazon CloudWatch 指標分析 Aurora 的資源使 PostgreSQL

Aurora 會 CloudWatch 在 1 分鐘內自動將指標資料傳送至。您可以使用指標分析 Aurora PostgreSQL 的資源使用 CloudWatch 量。您可以使用指標來評估網路輸送量和網路用量。

評估網路輸送量 CloudWatch

當您的系統用量接近執行個體類型的資源限制時,處理速度可能會變慢。您可以使用 CloudWatch 日誌深入解析來監視儲存資源使用情況,並確保有足夠的資源可用。需要時,您可以將資料庫執行個體修改為更大的執行個體類別。

Aurora 儲存體處理速度可能由於下列原因而變慢:

  • 用戶端與資料庫執行個體之間的網路頻寬不足。

  • 儲存體子系統的網路頻寬不足。

  • 對於您的執行個體類型而言很大的工作負載。

您可以查詢 CloudWatch 記錄深入解析,以產生 Aurora 儲存資源使用量圖形,以監視資源。此圖會顯示 CPU 使用率和指標,以協助您決定是否要縱向擴展至較大的執行個體大小。如需 CloudWatch 日誌深入解析查詢語法的相關資訊,請參閱CloudWatch 記錄見解查詢語法

若要使用 CloudWatch,您必須將您的 Aurora 記錄檔匯出到. CloudWatch 您也可以修改現有叢集以將記錄匯出至 CloudWatch。如需將記錄匯出至的資訊 CloudWatch,請參閱打開將日誌發佈到 Amazon 的選項 CloudWatch

您需要資料庫執行個體的資源 ID,才能查詢 CloudWatch日誌見解Resource ID (資源 ID) 可在主控台的 Configuration (組態) 索引標籤中找到:

若要查詢資源儲存體指標的日誌檔:
  1. 請在以下位置開啟 CloudWatch 主控台。 https://console.aws.amazon.com/cloudwatch/

    這時系統顯示 CloudWatch 概述首頁。

  2. 如有需要,請變更 AWS 區域。在導覽列中,選擇資 AWS 源所 AWS 區域 在的位置。如需詳細資訊,請參閱區域與端點

  3. 在導覽窗格中,選擇 Logs (日誌),然後選擇 Logs Insights (日誌洞察)。

    Logs Insights (日誌洞察) 頁面即會出現。

  4. 從下拉式清單選取要分析的日誌檔。

  5. 在欄位中輸入下列查詢,將 <resource ID> 取代為資料庫叢集的資源 ID:

    filter @logStream = <resource ID> | parse @message "\"Aurora Storage Daemon\"*memoryUsedPc\":*,\"cpuUsedPc\":*," as a,memoryUsedPc,cpuUsedPc | display memoryUsedPc,cpuUsedPc #| stats avg(xcpu) as avgCpu by bin(5m) | limit 10000

  6. 按一下 Run query (執行查詢)。

    即會顯示儲存體使用率圖形。

    下圖提供 Logs Insights (日誌洞察) 頁面和圖形顯示。

使用 CloudWatch 指標評估資料庫執行個體

您可以使用 CloudWatch 指標來觀察執行個體輸送量,並探索執行個體類別是否為應用程式提供足夠的資源。如需資料庫執行個體類別限制的相關資訊,請前往 Aurora 的資料庫執行個體類別的硬體規格並尋找資料庫執行個體類別的規格,以找出您的網路效能。

如果您的資料庫執行個體用量接近執行個體類別限制,效能可能會開始變慢。這些指 CloudWatch 標可以確認這種情況,因此您可以規劃手動擴展到較大的執行個體類別。

結合下列 CloudWatch 量度值,以確定是否已接近執行個體類別限制:

  • NetworkThroughput— 用戶端針對 Aurora DB 叢集中每個執行個體接收和傳輸的網路輸送量。此輸送量值不包含資料庫叢集中的執行個體與叢集磁碟區之間的網路流量。

  • StorageNetwork輸送 — Aurora 資料庫叢集中每個執行個體接收和傳送至 Aurora 儲存子系統的網路輸送量。

新增NetworkThroughput至輸送StorageNetwork量,以尋找 Aurora DB 叢集中每個執行個體從 Aurora 儲存子系統接收和傳送至 Aurora 儲存子系統的網路輸送量。執行個體的執行個體類別限制應該大於這兩個合併指標之和。

在傳送和接收時,您可以使用下列指標,來檢閱來自用戶端應用程式之網路流量的其他詳細資訊:

  • NetworkReceive輸送量 — Aurora PostgreSQL 資料庫叢集中每個執行個體從用戶端接收的網路輸送量。此輸送量不包含資料庫叢集中的執行個體與叢集磁碟區之間的網路流量。

  • NetworkTransmit輸送 — Aurora DB 叢集中每個執行個體傳送給用戶端的網路輸送量。此輸送量不包含資料庫叢集中的執行個體與叢集磁碟區之間的網路流量。

  • StorageNetworkReceiveThroughput— 資料庫叢集中每個執行個體從 Aurora 儲存子系統接收的網路輸送量。

  • StorageNetworkTransmitThroughput— 資料庫叢集中每個執行個體傳送至 Aurora 儲存子系統的網路輸送量。

將所有這些指標加在一起,以評估您的網路用量與執行個體類別限制的比較情形。執行個體類別限制應該大於這些個合併指標之和。

儲存體的網絡限制和 CPU 使用率是交互的。當網路輸送量增加時,CPU 使用率也會增加。監控 CPU 和網路用量可提供資源如何和為何耗盡的相關資訊。

若要協助將網路用量降至最低,您可以考慮:

  • 使用更大的執行個體類別。

  • 使用 pg_partman 分割策略。

  • 批次分割寫入要求,以減少整體交易。

  • 將唯讀工作負載導向至唯讀執行個體。

  • 刪除任何未使用的索引。

  • 檢查是否有膨脹的物體和 VACUUM。若有嚴重膨脹,請使用 PostgreSQL 延伸模組 pg_repack。如需 pg_repack 的詳細資訊,請參閱以最少的鎖定重組 PostgreSQL 資料庫中的資料表