本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
改善 Aurora Postgre 中的記憶體管理SQL
Aurora PostgreSQL 現在包含進階記憶體管理功能,可在各種工作負載下最佳化資料庫效能和彈性。這些改善有助於 Aurora PostgreSQL 維持一致的可用性和回應能力,即使在高記憶體需求的期間也是如此。
此功能在下列 Aurora PostgreSQL 版本中預設為可用和啟用:
-
15.3 版和所有更新版本
-
14.8 和更新版本
-
13.11 和更新版本
-
12.15 和更新版本
-
11.20 及更新版本
當客戶工作負載用完所有可用的可用記憶體時,作業系統可能會重新啟動資料庫來保護資源,導致暫時無法使用。當系統遇到高記憶體壓力時,Aurora PostgreSQL 中新的記憶體管理改進會主動取消特定交易,以協助維持資料庫穩定性。
改善記憶體管理的主要功能如下:
當系統接近重大記憶體壓力時,取消請求更多記憶體的資料庫交易。
當系統耗盡所有實體記憶體並即將耗盡交換記憶體時,一般認為該系統處於重大記憶體壓力之下。在這些情況下,任何請求記憶體的交易將會取消,以試圖降低資料庫執行個體中的記憶體壓力。
自動清空工作者等基本 PostgreSQL 啟動器和背景工作者一律受到保護。
處理記憶體管理參數
開啟記憶體管理
此功能預設為開啟。當交易由於記憶體不足而取消時,系統會顯示錯誤訊息,如下列範例所示:
ERROR: out of memory Detail: Failed on request of size 16777216.
關閉記憶體管理
若要關閉此功能,請使用 psql 連線至 Aurora PostgreSQL 資料庫叢集,並針對參數值使用 SET陳述式,如下所述。
注意
我們建議您保持啟用記憶體管理。這有助於防止由於記憶體耗盡而導致工作負載引發的資料庫重新啟動的潛在 out-of-memory錯誤。
下表顯示如何關閉不同 Aurora PostgreSQL 版本的記憶體管理功能:
Aurora PostgreSQL 版本 | 參數 | 預設 | 在工作階段層級關閉記憶體管理的命令 |
---|---|---|---|
11.20、11.21、12.15、12.16、13.11、13.12、14.8、14.9、15.3、15.4 |
|
|
|
12.17、13.13、14.10、15.5 及更新版本 |
|
|
|
注意
此rds.memory_allocation_guard
參數已在 Aurora PostgreSQL 12.17、13.13、14.10、15.5 及更新版本中取代。
在資料庫叢集參數群組中設定這些參數的值,可防止查詢遭到取消。如需資料庫叢集參數群組的詳細資訊,請參閱 Amazon Aurora 的參數組 RDS。
限制
db.t3 和 db.serverless 執行個體類別不支援此功能。