【问题标题】:Multi-process pgbouncer pooling: out of available connections多进程 pgbouncer 池:可用连接不足
【发布时间】:2015-01-06 19:20:46
【问题描述】:

我的设置: postgresql.conf: max_connections = 100

pgbouncer 配置:

[databases]
markets_parser = host=localhost port=5432 dbname=markets_parser user=argon

datestyle=ISO connect_query='SELECT 1'

[pgbouncer]
logfile = /var/log/postgresql/pgbouncer.log
listen_addr = 127.0.0.1
listen_port = 6432

unix_socket_dir = /var/run/postgresql

auth_type = trust
auth_file = /etc/pgbouncer/userlist.txt
admin_users = postgres
stats_users = postgres
pool_mode = session
server_reset_query = DISCARD ALL

max_client_conn = 90

default_pool_size = 70
min_pool_size = 20

reserve_pool_size = 10

我在 django 应用程序(不仅仅是站点应用程序,还有高负载多线程解析机制)中使用它和一堆 django 管理命令(作为单独的进程运行),它工作正常(虽然,几乎 总是,而不是当我有一个突然的活动时)当我只运行一个命令时,当我同时运行两个命令时会引发很多“连接不足”的错误。

怎么办?

【问题讨论】:

    标签: postgresql connection-pooling pgbouncer


    【解决方案1】:

    您可以安全地将max_client_conn 增加到更高的数字。这是可以连接pgbouncer,而不是PostgreSQL 服务器的客户端总数。它可以任意高,例如 2000 甚至更高。

    这确实是连接池的主要目的之一 - 保持少量连接到数据库,同时允许大量的终端客户端连接到池本身。

    重要的是设置default_pool_size不高于postgresql.conf文件中的max_connections设置。

    【讨论】:

    • 对不起,先生,这在 pgbouncer 文档中可能在哪里说明?
    猜你喜欢
    • 2021-08-24
    • 2019-07-27
    • 2023-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-20
    • 1970-01-01
    • 2019-07-07
    相关资源
    最近更新 更多