postgresql設定max_connections太大無法啟動 (轉載)

來源:互聯網
上載者:User

標籤:max   ova   運行   最大   大數   .net   系統   個數   img   

本篇隨筆轉載自https://my.oschina.net/u/2381678/blog/552346。

在生產環境postgresql中,需要調整最大連結數,但是調整後無法啟動

錯誤的意思就是核心中訊號量集和訊號量的配置太小了。訊號量在核心中,主要解決進程間同步、非同步鎖問題,因為PostgreSQL的每個連結是一個進程,所以需要更多的鎖來使用。查看方法:

這四個數字分別是:SEMMSL,SEMMNS,SEMOPM,SEMMNI

SEMMSL:核心參數,控制每個訊號量集合的最大訊號數。

SEMMNS:核心參數,控制系統範圍內能使用的最大訊號量數。

SEMOPM:semop()函數(核心功能,用來操作訊號量)每次調用鎖能操作的一個訊號量集中的最大訊號量。

SEMMNI:核心中訊號量集的最大數量。

SEMMNS=SEMMSL*SEMMNI

SEMOPM=SEMMSL,這兩個參數一般設定為相同。

對於PostgreSQL資料庫來說:

SEMMNI >= ceil((max_connections + autovacuum_max_workers + 4) / 16)

SEMMSL >= 17

假設一個PG庫如下設定:

max_connections=1000, autovacuum_max_workers =3,

則這幾個參數的設定是:

SEMMNI = ceil((1000+3+4))/16)=63,因為考慮到其他進程使用,一般設定為63+25=88

SEMMSL要求大於17,保持預設250

SEMOPM=SEMSL=250

SEMMNS=SEMMNI*MSMMSL=88*250=22000

在/etc/sysctl.conf檔案中添加:

kernel.sem=250  22000 250  88

運行:sysctl -p    

使配置生效

設定完成之後,如果啟動資料庫還是報同樣的錯誤,那麼可以重啟作業系統。(具體什麼原因,我也不知道,如果有哪位明白的大神,請賜教)

 

postgresql設定max_connections太大無法啟動 (轉載)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.