

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

# 針對 Aurora PostgreSQL 中的儲存問題進行故障診斷
<a name="AuroraPostgreSQL.BestPractices.TroubleshootingStorage"></a>

如果排序或索引建立操作所需的工作記憶體數量超出 `work_mem` 參數所配置的數量，Aurora PostgreSQL 會將多餘的資料寫入至暫存磁碟檔案。當它寫入資料時，Aurora PostgreSQL 會使用其用於存放錯誤和訊息日誌的相同儲存體，亦即，*本機儲存體*。Aurora PostgreSQL 資料庫叢集中的每個執行個體都有可用的本機儲存量。儲存量是以其資料庫執行個體類別為基礎。若要增加本機儲存量，您需要修改執行個體以使用較大的資料庫執行個體類別。資料庫執行個體類別規格，請參閱 [Aurora 資料庫執行個體類別的硬體規格](Concepts.DBInstanceClass.Summary.md)。

您可以透過監看 `FreeLocalStorage` 的 Amazon CloudWatch 指標，來監控 Aurora PostgreSQL 資料庫叢集的本機儲存空間。此指標回報可供 Aurora 資料庫叢集中每個資料庫執行個體用於暫時資料表與記錄的儲存量。如需詳細資訊，請參閱[使用 Amazon CloudWatch 監控 Amazon Aurora 指標](monitoring-cloudwatch.md)。

排序、檢索和分組操作在工作記憶體中開始，但通常必須卸載至本機儲存體。如果您的 Aurora PostgreSQL 資料庫叢集由於這些類型的操作而耗盡本機儲存體，則您可以採取下列其中一個動作來解決此問題。
+ 增加工作記憶體數量。這會減少使用本機儲存體的需求。根據預設，PostgreSQL 會針對每個排序、群組和索引操作配置 4 MB。若要檢查 Aurora PostgreSQL 資料庫叢集寫入器執行個體目前的工作記憶體數值，請使用 `psql` 連線至執行個體，並執行下列命令。

  ```
  postgres=> SHOW work_mem;
  work_mem
  ----------
   4MB
  (1 row)
  ```

  您可以在排序、群組和其他操作之前增加工作階段層級的工作記憶體，如下所示。

  ```
  SET work_mem TO '1 GB';
  ```

  如需為工作記憶體的詳細資訊，請參閱 PostgreSQL 文件中的[資源耗用](https://www.postgresql.org/docs/current/runtime-config-resource.html#RUNTIME-CONFIG-RESOURCE-MEMORY)。
+ 變更日誌保留期間，以便存放日誌的時間範圍縮短。若要了解作法，請參閱[Aurora PostgreSQL 資料庫日誌檔案](USER_LogAccess.Concepts.PostgreSQL.md)。

針對大於 40 TB 的 Aurora PostgreSQL 資料庫執行個體，請不要使用 db.t2、db.t3 或 db.t4g 執行個體類別。建議您在開發、測試伺服器或其他非生產伺服器時，僅使用 T 資料庫執行個體類別。如需詳細資訊，請參閱[資料庫執行個體類別的類型](Concepts.DBInstanceClass.Types.md)。