2017-02-24 37 views
2

我正在運行一個服務器,其中包含20個cpu核心和96 GB的ram。我已經配置Postgresql和Pgbouncer一次處理1000個連接。PGbouncer ERROR accept()失敗:打開的文件太多

但是當連接增加時(即使它們遠低於我設置的1000個限制),我開始獲得失敗的連接。我檢查了pgbouncer日誌,並注意到以下內容

ERROR accept() failed: Too many open files 

我需要增加哪些限制才能解決此問題?我正在運行Debian 8

+0

這很可能是關於Debian的限制。嘗試檢查這些文本:https://github.com/pgbouncer/pgbouncer/issues/115 和 https://www.postgresql.org/message-id/[email protected] – JosMac

+0

我同意它是通常是因爲限制。一個簡單的檢查方法是查看/ proc/{pid}/limits文件以查看該進程的限制。我仍然在我的最大文件ulimit設置爲100,000的ubuntu服務器上獲得此設置。當我達到約1k的連接時,它停止接受它們。訪問pgbouncer的用戶最多具有100k文件,pgbouncer服務器最多具有100k文件,並且postgres服務器也具有相同的最大值!我有點困惑... – hazmat

+0

等待,postgresql是否配置了1000個連接? pgbouncer的要點是你可以設置postgresql來處理20個連接,而pgbouncer將客戶端上的數千個連接「彙集到」服務器端的20個連接,從而防止這種確切的問題。 –

回答

0

增加運行pgBouncer的用戶的最大打開文件數的操作系統限制。

相關問題