内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

PostgreSQL數(shù)據(jù)庫的參數(shù)設置有哪些-創(chuàng)新互聯(lián)

這篇文章主要講解了“PostgreSQL數(shù)據(jù)庫的參數(shù)設置有哪些”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“PostgreSQL數(shù)據(jù)庫的參數(shù)設置有哪些”吧!

創(chuàng)新互聯(lián)建站專業(yè)IDC數(shù)據(jù)服務器托管提供商,專業(yè)提供成都服務器托管,服務器租用,香港機房服務器托管香港機房服務器托管,成都多線服務器托管等服務器托管服務。

假設數(shù)據(jù)庫主機OS為Linux 64bit,內(nèi)存為8G,存儲陣列使用RAID 5(帶寬約為200MB/s,IOPS約為200),主機沒有其他服務。

一、常規(guī)部分

listen_addresses

#PG默認監(jiān)聽本地連接,如需接受其他Client的連接請求,需修改為*
listen_addresses = '*'

max_connections

#大連接數(shù),默認為100,根據(jù)業(yè)務應用情況和主機配置設置
#由于PG使用多進程模式,如連接數(shù)大于一定數(shù)量(與機器配置相關)時,會因為進程上下文的頻繁切換導致性能降低
#如需要支持數(shù)千個連接,可以考慮使用分庫讀寫分離的方式,以及使用連接池組件(如PgBouncer)
max_connections=256

查看當前連接數(shù)的SQL:

testdb=# SELECT sum(numbackends) FROM pg_stat_database;
 sum 
-----
   1
(1 row)

二、內(nèi)存相關

假設機器內(nèi)存為N,則需滿足以下要求:
N > max_connections x work_mem + shared_buffers + temp_buffers + maintenance_work_mem + OS運行最小要求的內(nèi)存

shared_buffers

#共享緩沖區(qū),用于配置可用于Cache Data(包括Hot Data/Index等等)的內(nèi)存大小
#一般設置為主機內(nèi)存的25%-40%
shared_buffers=3G

effective_cache_size

#剔除操作系統(tǒng)本身和其他應用程序可用的內(nèi)存后,期望操作系統(tǒng)和數(shù)據(jù)庫本身可用于緩存數(shù)據(jù)的內(nèi)存大小
#該參數(shù)僅用于優(yōu)化的estimate(評估)階段,如果設置有誤會影響優(yōu)化器的判斷,得出不合理的執(zhí)行計劃
#比如在只有512M的主機上,設置該參數(shù)為4G,查詢一張有索引的大表時,如果訪問的索引大小<4G,那么執(zhí)行計劃有可能會使用該索引,但實際上主機內(nèi)存并不支持容納這么大的索引,導致實際執(zhí)行SQL時出現(xiàn)性能問題;同樣的,如果設置的過小,執(zhí)行計劃可能不會選擇用索引.
effective_cache_size=4G

work_mem

#每個Session執(zhí)行排序和建立散列表等操作時可使用的內(nèi)存大小,默認1M
#如需執(zhí)行較大/復雜的排序或連接操作,建議增大此參數(shù)
#注意:示例中大連接數(shù)為256,如此參數(shù)設置為4M,那么在滿載情況下使用的內(nèi)存為4Mx256=1G
work_mem=2M

maintenance_work_mem

#VACUUM, CREATE INDEX, and ALTER TABLE ADD FOREIGN KEY等操作可使用的內(nèi)存大小,默認64M
#由于這類操作并發(fā)數(shù)不會很大,增大此參數(shù)相對較為安全,如希望提升這些操作的性能,可適當加大此參數(shù)
maintenance_work_mem=256M

wal_buffers

#用于緩存WAL data,默認為-1(約為shared_buffers的1/32),最小為64KB,大為WAL segment大小(典型為16MB)
#由于WAL data在事務commit時寫入到日志文件中,在典型的主機配置下,假設每次Buffer都全滿,寫入的延遲約為wal_buffers/200,在0.32ms(64K)至81.92ms(16M)之間
wal_buffers=4M

三、性能相關

max_wal_size/min_wal_size
wal日志占用的大值和最小值,默認大為1G,最小為80M,用以替換先前的參數(shù)checkpoint_segments

checkpoint_segments
在參數(shù)在9.5+后已廢棄

#1.該參數(shù)定義了寫了多少個WAL Segment執(zhí)行一次checkpoint,默認為3(典型的,即48M)
#checkpoint最主要的功能是把緩存中臟數(shù)據(jù)寫入到磁盤中(注意:這里的寫是隨機寫,不是WAL的順序?qū)?)
#頻繁的checkpoint會影響數(shù)據(jù)庫性能,在常規(guī)的場景下,使用默認值會極大的降低數(shù)據(jù)庫性能
#假設該參數(shù)值為n,那么粗略上來說,每間隔(n*16MB/200MB)秒就會執(zhí)行一次checkpoint
#2.該參數(shù)會影響Recover,數(shù)值越大,人出現(xiàn)問題Recover的時間可能越長
#假設該參數(shù)值為n,那么極端情況下在產(chǎn)生n*16MB個WAL segment時出現(xiàn)宕機,下次啟動時,粗略來說就需要n*16MB個WAL segment進行Recover
checkpoint_segments=32

checkpoint_timeout

#checkpoint超時時間,默認為5分鐘,大1d
#在checkpoint_completion_target*checkpoint_timeout超時或者產(chǎn)生的WAL Segment超過checkpoint_segments時,執(zhí)行checkpoint
#增大此參數(shù),會減少磁盤IO壓力,但會延長Recover時間
checkpoint_timeout=8min

checkpoint_completion_target

#指定checkpoint的完成"目標",默認值為0.5,取值區(qū)間為0.0-1.0
#通過兩個checkpoint間隔時間的百分比來衡量,也就是checkpoint_completion_target*checkpoint_timeout
checkpoint_completion_target=0.9

random_page_cost

#隨機讀取Page的代價,以順序讀取為基準,默認值為4.0
#該參數(shù)會影響優(yōu)化器選擇執(zhí)行計劃,隨機讀取數(shù)據(jù)一般發(fā)生在通過Index訪問數(shù)據(jù)的時候
#如數(shù)據(jù)存儲在SSD這類隨機讀寫友好的設備上,可以降低至2.0甚至更低
random_page_cost=4.0

四、運維相關

autovacuum

#是否啟動自動vacuum,默認為on,常規(guī)情況下設置為on
#vacuum的詳細解析請參見先前章節(jié),此處不再累述
autovacuum=on

log_XX

#log_destination:日志類型,包括stderr, csvlog, syslog, eventlog
#建議設置為csvlog
log_destination='csvlog'

#logging_collector:如log_destination配置為csvlog,則該參數(shù)要求配置為on
logging_collector=on

#log_directory:日志存儲路徑,可使用相對路徑,在$PGDATA目錄下
log_directory='pg_log'

#log_rotation_age:每個多長時間產(chǎn)生一個日志,如設置為1d,則每隔一天產(chǎn)生一個日志文件 
#logging_collector=on時生效
log_rotation_age=1d

#log_rotation_size:單個文件的大大小,超過此值,重新生成日志文件
#logging_collector=on時生效
log_rotation_size=16MB

#log_min_duration_statement:記錄執(zhí)行時長>此值定義的SQL語句
log_min_duration_statement=1s

五、謹慎使用

synchronous_commit

#是否等待WAL數(shù)據(jù)寫入到磁盤后才返回成功,可選的值為on, remote_apply, remote_write, local, off,默認為on
#synchronous_commit設置為off,可能會導致雖然成功但實際上沒有持久化的事務
synchronous_commit=on

commit_delay/commit_siblings

#commit_delay:事務提交后,日志寫到wal_buffer至wal_buffer中的內(nèi)容寫入磁盤的時間間隔
#commit_siblings:觸發(fā)commit_delay等待的并發(fā)事務數(shù),如并發(fā)事務數(shù)<該值,則commit_delay無用
#這兩個參數(shù)用于提升在高并發(fā)非只讀事務的情況下的性能,可以讓buffer一次可以刷出較多的事務(Bulk Flush的效果)
#但同樣的,如果出現(xiàn)極端情況,buffer來不及持久化的時候出現(xiàn)崩潰,將會導致數(shù)據(jù)丟失
commit_delay=0
commit_siblings=5

fsync

#設置為on時,日志緩沖區(qū)刷盤時確認已經(jīng)寫入磁盤才會返回;
#設置為off時,由OS負責調(diào)度,能更好利用OS的緩存機制,提高IO性能。
#利用異步寫入的機制提升性能,但同樣存在數(shù)據(jù)丟失的風險
fsync=on

感謝各位的閱讀,以上就是“PostgreSQL數(shù)據(jù)庫的參數(shù)設置有哪些”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對PostgreSQL數(shù)據(jù)庫的參數(shù)設置有哪些這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!

本文名稱:PostgreSQL數(shù)據(jù)庫的參數(shù)設置有哪些-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://www.rwnh.cn/article0/gegio.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、關鍵詞優(yōu)化、做網(wǎng)站、企業(yè)建站、軟件開發(fā)、網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設計公司
金湖县| 肥西县| 蕲春县| 勐海县| 鲁甸县| 罗山县| 武邑县| 泸州市| 图木舒克市| 都安| 开化县| 星座| 华蓥市| 芮城县| 麻城市| 称多县| 滦南县| 巩义市| 阿拉尔市| 壤塘县| 曲阳县| 手机| 微博| 荔波县| 德钦县| 安阳县| 穆棱市| 思茅市| 伊宁市| 渭南市| 佛山市| 沙湾县| 和顺县| 安义县| 山阳县| 大英县| 凭祥市| 盐津县| 稷山县| 睢宁县| 金乡县|