共用方式為


在 適用於 PostgreSQL 的 Azure 資料庫 中執行智慧型調整 - 彈性伺服器

適用範圍:適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器具有智慧型手機調功能,其設計目的是自動增強效能,並協助防止問題。 智慧型調整會持續監視 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器資料庫的狀態,並動態調整資料庫至您的工作負載。

此功能包含兩個自動調整函式:

  • 自動數據清理調整:此函式會追蹤膨脹比例,並據以調整自動數據清理設定。 它會同時考慮目前和預測的資源使用量,以防止工作負載中斷。
  • 寫入微調:此函式會監視寫入作業的磁碟區和模式,並修改影響寫入效能的參數。 這些調整可增強系統效能和可靠性,以主動避免潛在的併發症。

您可以使用 Azure 入口網站Azure CLI 來啟用智慧型手機調整。

為何要進行智慧型手機調整?

自動數據清理程式是維護 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器資料庫健康情況和效能的關鍵部分。 它可協助回收「死」數據列所佔用的記憶體、釋出空間並讓資料庫保持順暢執行。

同樣重要的是調整資料庫內的寫入作業。 此工作通常落在資料庫管理員。 持續監視資料庫和微調寫入作業可能具有挑戰性且耗時。 當您處理多個資料庫時,這項工作變得越來越複雜。

這是智慧型手機調步驟的位置。 您可以使用智慧型手機調來自動監視和調整資料庫,而不是手動監督和調整資料庫。 然後,您可以專注於其他重要工作。

智慧型微調中的自動數據清理功能會監視膨脹比率,並視需要調整設定,以獲得最佳資源使用率。 它會主動管理資料庫的「清除」程式,並降低過期數據可能造成的效能問題。

寫入微調函式會觀察寫入作業的數量和交易模式。 它會以智慧方式調整參數,例如 bgwriter_delaycheckpoint_completion_targetmax_wal_sizemin_wal_size。 如此一來,即使在高寫入負載下,它也能提升系統效能和可靠性。

當您使用智慧型手機調整時,您可以依賴 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器來維持資料庫的最佳效能,以節省寶貴的時間和資源。

智慧型微調如何運作?

智慧型調整是持續監視和分析程序,不僅會瞭解工作負載的特性,也會追蹤目前的負載和資源使用量,例如 CPU 或 IOPS。 這不會干擾應用程式工作負載的正常作業。

此程式可讓資料庫透過辨別實例目前的膨脹比率、寫入效能和檢查點效率,以動態調整工作負載。 透過這些深入解析,智慧型手機調整會部署微調動作,以增強工作負載的效能,並避免潛在的陷阱。

自動數據清理微調

智慧型調整會調整與自動資料清理相關的五個參數:autovacuum_vacuum_scale_factor、、autovacuum_cost_limitautovacuum_naptimeautovacuum_vacuum_threshold、 和 autovacuum_vacuum_cost_delay。 這些參數會規範元件,例如:

  • 設定 VACUUM 進程之數據表的分數。
  • 以成本為基礎的真空延遲限制。
  • 自動數據清理執行之間的暫停間隔。
  • 啟動 VACUUM 進程所需的更新或無效 Tuple 計數下限。
  • 清除四捨五入之間的暫停持續時間。

重要

智慧型手機調會修改伺服器層級的自動數據清理相關參數,而不是個別的數據表層級。 此外,如果自動數據清理已關閉,智慧型微調就無法正確運作。 若要讓智慧型手機調整將程式優化,必須啟用自動數據清理功能。

雖然自動擷取精靈會觸發兩個作業(VACUUMANALYZE),但智慧型手機微調只會 VACUUM 微調程式。 此功能目前不會調整ANALYZE程式,其會收集數據表內容的統計數據,以協助 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器查詢規劃工具選擇最適合的查詢執行計劃。

智慧型調整包括測量 CPU 和 IOPS 等資源使用率的保護措施。 當實例負載過重時,它不會增加自動數據清理活動。 如此一來,智慧型調整可確保有效清除作業與系統的整體效能之間取得平衡。

當智慧型手機將自動數據清理優化時,它會使用有關即時和死去 Tuple 的統計數據來考慮伺服器的平均膨脹。 為了減少膨脹,智慧型手機可能會減少縮放因數或 naptime 等參數。 它可能會更快觸發 VACUUM 程式,並視需要減少輪次之間的延遲。

另一方面,如果膨脹很小,而且自動數據清理程序過於咄咄逼人,智慧型微調可能會增加延遲、縮放因數和 naptime 等參數。 此平衡可將膨脹降至最低,並協助確保自動數據清理程式有效率地使用資源。

寫入微調

智慧型調整會調整與寫入微調相關的四個參數: bgwriter_delaycheckpoint_completion_targetmax_wal_sizemin_wal_size

參數 bgwriter_delay 會決定背景寫入器進程覺醒的頻率,以清除「骯髒」緩衝區(新的或修改的緩衝區)。 背景寫入器進程是 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器中處理寫入作業的三個進程之一。 另一個是檢查點器進程和後端寫入(標準客戶端進程,例如應用程式連線)。

背景寫入器程式的主要角色是減輕主要檢查點處理程式的負載,並減少後端寫入的壓力。 參數 bgwriter_delay 會控管背景寫入器四捨五入的頻率。 藉由調整此參數,您也可以優化數據操作語言 (DML) 查詢的效能。

參數checkpoint_completion_target是 適用於 PostgreSQL 的 Azure 資料庫 彈性伺服器支援的第二個寫入機制的一部分,特別是檢查點器進程。 檢查點會以固定間隔 checkpoint_timeout 進行定義(除非強制超過設定的空間)。 為了避免使用大量頁面寫入來多載 I/O 系統,在檢查點期間寫入臟緩衝區會分散在一段時間內。 參數 checkpoint_completion_target 會使用 checkpoint_timeout 將持續時間指定為檢查點間隔的一小部分,以控制此持續時間。

的預設值 checkpoint_completion_target 為 0.9(自 PostgreSQL 14 起)。 此值通常最適合使用,因為它會將 I/O 負載分散在最長的時間週期內。 在罕見的情況下,檢查點可能不會及時完成,因為所需的「提前寫入記錄」(WAL) 區段數目發生非預期的波動。 對效能的潛在影響是智慧型手機調整的目標計量的原因 checkpoint_completion_target

限制和已知問題

  • 智慧型調整只會在特定範圍內進行優化。 此功能可能不會進行任何變更。
  • 智慧型調整不會調整 ANALYZE 設定。
  • 目前針對具有四個或更多虛擬核心的一般用途和記憶體優化伺服器計算層,支援自動數據清理微調。 不支援高載伺服器計算層。

下一步