本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon Aurora Postgre 的效能和擴展SQL
下一節討論 Amazon Aurora PostgreSQL 資料庫叢集的管理效能和擴展。也包括其他維護任務的相關資訊。
主題
擴展 Aurora PostgreSQL 資料庫執行個體
您可以透過兩種方式擴展 Aurora PostgreSQL 資料庫執行個體:執行個體擴展和讀取擴展。如需讀取擴展的詳細資訊,請參閱讀取擴展。
您可以修改資料庫叢集中每個資料庫執行個體的資料庫執行個體類別,來擴展 Aurora PostgreSQL 資料庫叢集。Aurora PostgreSQL 支援數個針對 Aurora 最佳化的資料庫執行個體類別。針對大小超過 40 TB 的較大 Aurora 叢集,請勿使用 db.t2 或 db.t3 執行個體類別。
注意
建議您在開發、測試伺服器或其他非生產伺服器時,僅使用 T 資料庫執行個體類別。如需詳細了解 T 執行個體類別,請參閱 資料庫執行個體類別的類型。
擴展並非即時進行。可能需要 15 分鐘或更長時間,才能完成對其他資料庫執行個體類別做的變更。若您使用此方法修改資料庫執行個體類別,請在下一個排程維護時段 (而非立即) 套用變更,以避免影響使用者。
作為修改資料庫執行個體類別的直接替代方法,您可以使用 Amazon Aurora 的高可用性功能來盡力減少停機時間。首先,請將 Aurora 複本新增至您的叢集。在建立複本時,請選擇要用於叢集的資料庫執行個體類別規模。在 Aurora 複本與叢集同步時,您便可以容錯移轉為新增的複本。如需了解詳細資訊,請參閱 Aurora 複本 和 Amazon Aurora PostgreSQL 的快速容錯移轉。
如需 Aurora Postgre 支援的資料庫執行個體類別的詳細規格SQL,請參閱 資料庫執行個體類別的支援資料庫引擎。
Aurora PostgreSQL 資料庫執行個體的最大連線數
Aurora PostgreSQL 資料庫叢集會根據資料庫執行個體類別及其可用的記憶體來配置資源。資料庫叢集的每個連線都會消耗這些資源的增量,例如記憶體和 CPU。每個連線佔用的記憶體會因查詢類型、計數及是否使用臨時資料表而有所不同。即使閒置連線也會耗用記憶體和 CPU。這是因為當查詢在連線上執行時,會為每個查詢分配更多的記憶體,且即使停止處理,也不會將其完全釋放。因此,我們建議您確保您的應用程式不會在閒置連線上等待:每一個閒置連線都會浪費資源並對效能產生負面影響。如需詳細資訊,請參閱閒置 PostgreSQL 連線使用的資源
Aurora PostgreSQL 資料庫執行個體允許的連線數目上限,取決於該資料庫執行個體的max_connections
參數群組中指定的參數值。參數的理想設定max_connections
是支援您應用程式所需的所有用戶端連線,而不會過度未使用的連線,以及至少 3 個支援 AWS 自動化的連線。在修改 max_connections
參數設定之前,建議您考慮下列內容:
-
如果
max_connections
值太低,當用戶端嘗試連線時,Aurora PostgreSQL 資料庫執行個體可能沒有足夠的連線可用。若發生這種情況,則嘗試使用psql
連線將引發下列錯誤訊息:psql: FATAL: remaining connection slots are reserved for non-replication superuser connections
-
如果
max_connections
值超過實際需要的連線數,未使用的連線可能會導致效能降低。
的預設值max_connections
衍生自下列 Aurora PostgreSQL LEAST
函數:
LEAST({DBInstanceClassMemory/9531392},5000)
.
若您想變更 max_connections
值,您需要建立自訂資料庫叢集參數群組並在其中變更其值。將自訂資料庫參數群組套用至叢集後,請務必重新啟動主執行個體,新的值才會生效。如需詳細資訊,請參閱 Amazon Aurora PostgreSQL 參數 和 在 Amazon Aurora 中建立資料庫叢集參數群組。
提示
如果您的應用程式經常開啟和關閉連線,或保持大量長期連線開啟,建議您使用 Amazon RDS Proxy。 RDSProxy 是全受管、高可用性的資料庫代理,使用連線集區來安全有效地共用資料庫連線。若要進一步了解 RDS Proxy,請參閱 Amazon RDS Proxy for Aurora。
如需有關 如何 Aurora Serverless v2 執行個體會處理此參數,請參閱Aurora Serverless v2 的連線數上限。
Aurora Postgre 的暫時儲存限制SQL
Aurora PostgreSQL 會將資料表和索引存放在 Aurora 儲存子系統中。Aurora PostgreSQL 會針對非持久性暫存檔案使用個別的暫存儲存。這包括用於查詢處理期間排序大型資料集或用於索引建置作業等目的的檔案。如需詳細資訊,請參閱文章如何對 Aurora Postgre SQL相容執行個體中的本機儲存問題進行疑難排解?
這些本機儲存磁碟區由 Amazon Elastic Block Store 支援,且可透過使用更大的資料庫執行個體類別來擴充。如需儲存體的詳細資訊,請參閱Amazon Aurora 儲存體。您也可以使用NVMe已啟用的執行個體類型和啟用 Aurora Optimized Reads 的臨時物件,來增加臨時物件的本機儲存。如需詳細資訊,請參閱使用 Aurora 最佳化讀取改善 Aurora 波斯特格雷SQL的查詢效能。
注意
當擴充資料庫執行個體時,例如從 db.r5.2xlarge 擴充到 db.r5.4xlarge,您可能會看見 storage-optimization
事件。
下表顯示每個 Aurora PostgreSQL 資料庫執行個體類別可用的暫時儲存量上限。如需 Aurora 之資料庫執行個體類別支援的詳細資訊,請參閱 Amazon Aurora 數據庫實例類。
DB instance class (資料庫執行個體類別) | 可用的暫存空間上限 (GiB) |
---|---|
db.x2g.16xlarge | 1829 |
db.x2g.12xlarge | 1606 |
db.x2g.8xlarge | 1071 |
db.x2g.4xlarge | 535 |
db.x2g.2xlarge | 268 |
db.x2g.xlarge | 134 |
db.x2g.large | 67 |
db.r8g.48xlarge | 3072 |
db.r8g.24xlarge | 1536 |
db.r8g.16xlarge | 998 |
db.r8g.12xlarge | 749 |
db.r8g.8xlarge | 499 |
db.r8g.4xlarge | 250 |
db.r8g.2xlarge | 125 |
db.r8g.xlarge | 63 |
db.r8g.large | 31 |
db.r7g.16xlarge | 1008 |
db.r7g.12xlarge | 756 |
db.r7g.8xlarge | 504 |
db.r7g.4xlarge | 252 |
db.r7g.2xlarge | 126 |
db.r7g.xlarge | 63 |
db.r7g.large | 32 |
db.r7i.48xlarge | 3072 |
db.r7i.24xlarge | 1500 |
db.r7i.16xlarge | 1008 |
db.r7i.12xlarge | 748 |
db.r7i.8xlarge | 504 |
db.r7i.4xlarge | 249 |
db.r7i.2xlarge | 124 |
db.r7i.xlarge | 62 |
db.r7i.large | 31 |
db.r6g.16xlarge | 1008 |
db.r6g.12xlarge | 756 |
db.r6g.8xlarge | 504 |
db.r6g.4xlarge | 252 |
db.r6g.2xlarge | 126 |
db.r6g.xlarge | 63 |
db.r6g.large | 32 |
db.r6i.32xlarge | 1829 |
db.r6i.24xlarge | 1500 |
db.r6i.16xlarge | 1008 |
db.r6i.12xlarge | 748 |
db.r6i.8xlarge | 504 |
db.r6i.4xlarge | 249 |
db.r6i.2xlarge | 124 |
db.r6i.xlarge | 62 |
db.r6i.large | 31 |
db.r5.24xlarge | 1500 |
db.r5.16xlarge | 1008 |
db.r5.12xlarge | 748 |
db.r5.8xlarge | 504 |
db.r5.4xlarge | 249 |
db.r5.2xlarge | 124 |
db.r5.xlarge | 62 |
db.r5.large | 31 |
db.r4.16xlarge | 960 |
db.r4.8xlarge | 480 |
db.r4.4xlarge | 240 |
db.r4.2xlarge | 120 |
db.r4.xlarge | 60 |
db.r4.large | 30 |
db.t4g.large | 16.5 |
db.t4g.medium | 8.13 |
db.t3.large | 16 |
db.t3.medium | 7.5 |
注意
NVMe 啟用的執行個體類型最多可將可用臨時空間增加至總NVMe大小。如需詳細資訊,請參閱使用 Aurora 最佳化讀取改善 Aurora 波斯特格雷SQL的查詢效能。
您可以使用 FreeLocalStorage
CloudWatch 指標 --> 監控資料庫執行個體可用的臨時儲存,如 中所述Amazon Aurora 的 Amazon CloudWatch 指標。(這不適用於 Aurora Serverless v2.)
對於某些工作負載,您可以針對執行該操作的處理程序配置更多記憶體,以減少暫存空間容量。若要增加 操作可用的記憶體,請增加 work_mem
Aurora Postgre 的大型頁面SQL
巨型分頁是一項記憶體管理功能,可減少資料庫執行個體處理大型連續記憶體區塊 (如共用緩衝區使用的記憶體區塊) 時的額外負荷。所有目前可用的 Aurora PostgreSQL 版本都支援此 PostgreSQL 功能。
對於 t3.medium,db.t3.large、db.t4g.medium、db.t4g.large 類別以外的所有資料庫執行個體類別,預設為開啟 Huge_pages
參數。您無法在 Aurora Postgre 支援的執行個體類別中變更huge_pages
參數值或關閉此功能SQL。