最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

PostgreSQL服務(wù)器配置的參數(shù)指南

2023-06-16 17:20 作者:恒訊科技  | 我要投稿

PostgreSQ服務(wù)器配置參數(shù)在優(yōu)化和增強數(shù)據(jù)庫性能方面發(fā)揮著重要作用。PostgreSQL的主要可調(diào)設(shè)置位于名為 postgresql.conf 的純文本文件中,該文件位于數(shù)據(jù)庫目錄結(jié)構(gòu)的底部。這些配置參數(shù)中的大多數(shù)大致分為以下幾類:

1、數(shù)據(jù)庫連接參數(shù)

2、記錄參數(shù)

3、內(nèi)存參數(shù)

下面,小編就詳細給大家介紹一下PostgreSQL服務(wù)器配置的參數(shù)指南。

一、連接參數(shù)

有許多配置參數(shù)可以控制人們?nèi)绾芜h程和本地連接到數(shù)據(jù)庫。

1、監(jiān)聽地址

任何需要從遠程系統(tǒng)連接的安裝都需要更改listen_addresses以允許連接。默認情況下僅允許來自登錄到與數(shù)據(jù)庫服務(wù)器相同系統(tǒng)的用戶的本地連接。一種常見的方法是接受來自任何地方的傳入連接——就主配置文件而言,如下所示:listen_addresses = '*'

2、最大連接數(shù)

Max_connections是我們在initdb生成的postgresql.conf中總是會發(fā)現(xiàn)設(shè)置為一個值的設(shè)置之一,通常為100。因為每個連接都使用少量的共享內(nèi)存,所以共享內(nèi)存默認值特別有限的系統(tǒng)甚至可能不允許這么多連接。因此,在創(chuàng)建數(shù)據(jù)庫集群時,initdb會進行一些調(diào)查,然后將支持的最大值(最多100)保存到默認配置中。實際上,每個客戶端用于諸如排序之類的事情的非共享內(nèi)存量將使它相形見絀,但不能完全忽略共享組件。

重要的是不要將此參數(shù)設(shè)置為比您需要的值高得多的值。較大的設(shè)置有幾個缺點。第一個是浪費的共享內(nèi)存,通常是最后一個要關(guān)注的事情,因為每個連接的數(shù)量很小。


二、記錄參數(shù)

常規(guī)日志記錄設(shè)置至關(guān)重要,因為日志記錄在調(diào)試錯誤、警告和其他系統(tǒng)問題中起著至關(guān)重要的作用。我們可能需要設(shè)置log_destination、log_directory和log_filename等參數(shù),以符合我們環(huán)境的系統(tǒng)管理要求的方式保存我們的日志文件。在大多數(shù)系統(tǒng)上,這些都將設(shè)置為合理的默認值以開始使用。在類UNIX系統(tǒng)上,一些數(shù)據(jù)庫日志記錄通常在啟動和停止服務(wù)器的腳本中設(shè)置,而不是直接在postgresql.conf 文件中設(shè)置。

1、log_line_prefix

默認的log_line_prefix參數(shù)是空的,一個好的起始值如下:

這會將以下內(nèi)容放入每個日志行:

%t:時間戳%u:數(shù)據(jù)庫用戶名%r:遠程主機連接%d:數(shù)據(jù)庫%p:連接的進程ID

2、日志語句

語句日志記錄是一種用于查找性能問題的強大技術(shù)。分析log_statement保存的信息和語句級詳細信息的相關(guān)來源可以揭示許多類型的性能問題的真正來源。此設(shè)置的選項如下:

none:不記錄任何語句級信息。

ddl:僅記錄數(shù)據(jù)定義語言(DDL)語句,例如CREATE和DROP。這通常可以保留,即使在生產(chǎn)中,也可以用于捕獲管理員無意或有意引入的重大更改。

mod:記錄任何修改值的語句,除了簡單的SELECT語句外,它基本上是所有內(nèi)容。如果我們的工作負載主要是基于SELECT且數(shù)據(jù)更改相對較少,則始終啟用此功能可能很實用。

all:記錄每條語句。由于日志記錄的開銷,這在生產(chǎn)中通常是不切實際的。但是,如果我們的服務(wù)器相對于它的工作負載來說足夠強大,那么讓它一直保持運行可能是可行的。

log_min_duration_statement

一旦我們對執(zhí)行典型的查詢語句需要多長時間有了一些了解,此設(shè)置允許您僅記錄超過我們設(shè)置的閾值的語句。該值以毫秒為單位,因此我們可以設(shè)置以下內(nèi)容:

log_min_duration_statement=1000

這樣,我們將只會看到運行時間超過1秒的語句。這對于找出比大多數(shù)執(zhí)行時間長得多的離群語句的來源非常方便。


三、內(nèi)存參數(shù)

數(shù)據(jù)庫組件需要內(nèi)存來緩存頻繁訪問的數(shù)據(jù)、事務(wù)日志和排序數(shù)據(jù)。因此,正確調(diào)整內(nèi)存參數(shù)至關(guān)重要,因為它可以幫助優(yōu)化數(shù)據(jù)庫性能。

1、共享緩沖區(qū)

該參數(shù)的值定義了PostgreSQL共享緩沖池的大小。換句話說,此參數(shù)控制PostgreSQL用于緩存數(shù)據(jù)的內(nèi)存量。128 MB的默認值對于任何現(xiàn)實世界的工作負載來說都非常低,需要加強。此值應(yīng)根據(jù)數(shù)據(jù)集大小設(shè)置,數(shù)據(jù)庫服務(wù)器應(yīng)該在峰值負載和可用RAM的基礎(chǔ)上處理。事實上的經(jīng)驗法則是,在RAM超過1GB的系統(tǒng)上,此參數(shù)的合理值約為系統(tǒng)內(nèi)存的四分之一。此參數(shù)的值也可以設(shè)置為更大的值,并且理想情況下有效的最大設(shè)置為可用RAM的40%。但是將它增加到超過該限制可能不會有效,因為PostgreSQL也依賴于操作系統(tǒng)緩存來進行操作。較大的shared_buffers參數(shù)值意味著增加 checkpoint_segments 值,以便在一段時間內(nèi)分散寫入大量新數(shù)據(jù)或更改數(shù)據(jù)的過程。此值只能在服務(wù)器啟動時設(shè)置。

2、臨時緩沖區(qū)

此參數(shù)定義每個數(shù)據(jù)庫會話用于緩存臨時表數(shù)據(jù)的內(nèi)存量。這些基本上是會話本地緩沖區(qū),僅用于訪問臨時表。在Postgresql版本9.4中,此參數(shù)的默認值為八,并且此設(shè)置可以在單個會話中更改,但只能在會話中首次使用臨時表之前更改。任何后續(xù)更改該值的嘗試都不會影響現(xiàn)有會話。

3、維護工作內(nèi)存

此參數(shù)定義維護操作使用的最大內(nèi)存量,即VACUUM、CREATE INDEX、ALTER TABLE ADD FOREIGN KEY 操作需要更多工作內(nèi)存。要注意的是,這些會話中的許多會話不太可能同時執(zhí)行這些操作,因此可以將此值設(shè)置為比標準每個客戶端work_mem設(shè)置大得多的值。在PostgreSQL 版本9.4中,此參數(shù)的默認值設(shè)置為64MB。這里需要注意的一點是,當autovacuum運行時,autovacuum_max_workers的值分配此內(nèi)存的次數(shù)。從優(yōu)化的角度并考慮到?jīng)]有增加autovacuum worker的數(shù)量,一個好的配置設(shè)置是將其設(shè)置為系統(tǒng)總內(nèi)存的5%左右,這樣即使五個這樣的進程也不會超過可用內(nèi)存的四分之一記憶。這大約相當于每GB服務(wù)器系統(tǒng)內(nèi)存50 MB的maintenance_work_mem。


以上是PostgreSQL服務(wù)器配置的參數(shù)指南介紹,希望能幫助到大家參考!


PostgreSQL服務(wù)器配置的參數(shù)指南的評論 (共 條)

分享到微博請遵守國家法律
潜江市| 汽车| 尉犁县| 济源市| 特克斯县| 白城市| 临洮县| 荣昌县| 江孜县| 湘阴县| 四平市| 板桥市| 佛山市| 渝中区| 太谷县| 樟树市| 电白县| 南皮县| 荔波县| 大城县| 搜索| 巴林右旗| 霸州市| 安阳市| 德保县| 阳东县| 普陀区| 达孜县| 佛教| 甘孜县| 榕江县| 磐安县| 建始县| 宣武区| 长顺县| 会理县| 台安县| 昆明市| 孟州市| 德安县| 石狮市|