PostgreSQL 實例安裝完,哪些配置參數需要調整?
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
在本教程中,我們將回顧一些有助于 PostgreSQL 調優的不同的 GUC(全局統一配置)參數。這些參數位于 postgresql.conf 文件( shared_buffers (integer)shared_buffers 參數確定專用于服務器緩存數據的內存量。該參數在 postgresql.conf 文件中設置的默認值為:
該值應設置為機器總內存的 15% 到 25%。例如,如果您的機器內存大小為 32 GB,則 shared_buffers 的建議值為 8 GB。 更改此參數后,需要重新啟動服務器。 work_mem (integer)work_mem 參數實質上提供了內部排序操作和哈希表在寫入臨時的磁盤文件之前要使用的內存量。排序操作用于 ORDER BY、DISTINCT 和 MERGE JOIN 操作。哈希表用于哈希連接和基于哈希的聚合。 該參數在 postgresql.conf 文件中設置的默認值為:
設置正確的 work_mem 參數值可以減少磁盤交換,從而大大加快查詢速度。 我們可以使用下面公式,來計算數據庫服務器的 work_mem 值:
max_connections 也是一個 GUC 參數,它用于指定與數據庫服務器的最大并發連接數。默認情況下,該值設置為 100 個連接。 我們也可以直接給一個角色設置 work_mem 參數值:
autovacuum默認情況下,該 GUC 參數在 postgresql.conf 文件中處于啟用狀態,建議采用此設置。如果該參數設置為 off,則服務器中不會進行自動清理,但是在禁用的情況下,系統還是會啟動 autovacuum 進程,以防止事務 ID 回卷。 在 postgresql.conf 文件中更改此參數值后,需要重新啟動數據庫服務器。 其他與 autovacuum 相關的 GUC 參數包括: autovacuum_max_workers該參數可設置會并行運行的 autovacuum 工作進程數。默認情況下,它是 3。如果存在大量具有頻繁更新或刪除操作的表,則需要將該值設置得更高。 autovacuum_naptime該參數指定在任何給定數據庫上調度 autovacuum 運行之間的最小延遲。默認值為 1 分鐘。如果有 60 個數據庫,則必須每秒啟動一次 autovacuum 進程。在這種情況下,建議增加該值,以便 autovacuum 不會太頻繁地啟動。 autovacuum_vacuum_threshold該參數指定在任何一個表中觸發 VACUUM 所需的最少更新或刪除的元組數。默認值為 50 個元組,這對于很多表來說是非常低的。 autovacuum_analyze_threshold該參數指定在任何一個表中觸發 ANALYZE 所需的插入、更新或刪除的元組的最少數量。默認值為 50 個元組,這對于很多表來說是非常低的。 autovacuum_vacuum_scale_factor該參數指定對一個表啟動 autovacuum 進程所需更改的表的百分比。默認值為 0.2(即表大小的 20%),autovacuum_analyze_scale_factor 為 0.1(即 10%)。該值適用于小型表,但如果表的大小較大(比如 150 GB),則在 autovacuum 進程啟動之前將有 30 GB 的死元組。但是,如果有少量的大型表,那么我們可以在表級別進行設置,而不是修改 postgresql.conf 文件:
有關其他的 autovacuum 參數,請參閱 PostgreSQL 在線文檔。 effective_cache_sizeeffective_cache_size 參數用來估計在數據庫系統中可被操作系統用于磁盤緩存的內存量。PostgreSQL 查詢規劃器會決定它是否能放入內存中。較高的值更有可能采用索引掃描,否則如果該值較低,則將使用順序掃描。 建議將 effective_cache_size 設置為機器總內存的 50%。 max_parallel_workermax_parallel_worker 參數指定要執行并行操作的最大工作進程數,這還取決于 GUC 參數 max_worker_processes 中指定的值,它指定了系統可以支持的最大后臺進程數;默認值為 8。 maintenance_work_mem (integer)maintenance_work_mem 參數實質上提供了維護操作可使用的最大內存量,如 VACUUM、CREATE INDEX、ALTER TABLE 和添加外鍵操作等。該參數在 postgresql.conf 文件中設置的默認值為:
建議將該值設置為高于 work_mem,這樣可能會提高 vacuum 操作的性能。一般來說,它應該是:
有關更多詳細信息,請參閱 PostgreSQL 調優的 wiki 頁面。 該文章在 2024/12/4 17:30:27 編輯過 |
關鍵字查詢
相關文章
正在查詢... |