CentOS中運行PostgreSQL需要修改的核心參數及配置指令碼分享_PostgreSQL

來源:互聯網
上載者:User

PostgreSQL在CentOS上部署的時候,需要設定一些作業系統的參數,官方文檔上列舉了一些(傳送門)。除了這些,還有一些其他的設定,如單個使用者允許的最大進程數,單個進程的最大控制代碼數等,這些一般也需要調整,否則系統會在一些條件下出現問題,或者效能下降。下面從系統資源限制類和記憶體參數最佳化類來進行說明.

系統資源限制類

1.單個使用者允許的最大進程數:linux系統預設是1024,如果PG的最大串連數超過1024,則實際的串連數會小於1024(PG的postmaster進程,checkpointer進程,bgwriter進程,WAL發送進程,日誌進程等會佔用幾個進程數,所以給客戶段的串連數會小於1024),超過的串連請求會報資源不夠的錯誤資訊.所以為了避免這種情況,需要調整PG的linux使用者的可以使用的進程數,一般通過limit.conf進行配置.

2.單個進程可以開啟的最大檔案數:linux預設是1024,在SQL很複雜,開啟很多表,或者訪問很多分區時,會出現控制代碼數不夠的錯誤.

記憶體參數最佳化類

1.vm.dirty_background_ratio:這個參數控制當系統記憶體寫髒的比例達到多少時,會啟動後台進程將buffer刷到磁碟.預設是10%,對於大記憶體的機器,如超過64G,10%的記憶體為6.4,一次把6.4G資料寫入磁碟,會瞬間產生大量磁碟IO,使系統失去響應,影響其他進程.所以一般8G以上記憶體的機器,推薦設定為1%.

2.vm.dirty_background_types:這個參數與上面的類似,只不過這個參數可以設定記憶體髒掉的絕對值.著兩個參數其中一個為0,則另外一個會起作用.

下面是配置這幾個參數的指令碼,在CentOS 6.x上測試OK.

複製代碼 代碼如下:

#limit process to 4096 instead 1024,for we may have 1024+ connections
echo "postgres        soft    nproc           4096" >> /etc/security/lmits.conf
 
#for big query,pg may open more than 1024 files per session
echo "postgres        hard    nofile          65535" >> /etc/security/limits.conf
echo "postgres        soft    nofile          65535" >> /etc/security/limits.conf
 
#default is 10% of memory,to smooth the io peek value,
#set this to tune background process flush buffer more frequently
echo "vm.dirty_background_ratio=0" >> /etc/sysctl.conf
echo "vm.dirty_background_bytes=1024000000" >> /etc/sysctl.conf
 
#make the sysctl.conf setting take effect
sysctl -p
 
#make limit to take effect
/etc/init.d/sshd restart

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.