0

我的设置: 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 管理命令(作为单独的进程运行),它工作正常(虽然,几乎总是,不是当我有活动突然飞溅),当我只运行一个命令时,当我一次运行两个命令时引发很多“连接不足”错误。

该怎么办?

4

1 回答 1

2

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

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

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

于 2014-11-10T14:55:25.627 回答