我需要配置我的pgbouncer以便与超过2000个客户端连接一起工作,我正在阅读有关如何使用最大连接的一些信息,然后我明白了我必须做什么 max_client_con = 2000 在pgbouncer上,但是 default_pool_size 呢,他们不仅仅是要问一些支持,以便了解在大型客户端连接上配置pgbouncer的正确方法
postgres.conf
port = 5432 # (change requires restart)
max_connections = 100 # (change requires restart)
unix_socket_directory = '/var/run/postgresql' # (change requires restart)
pgbouncer.ini
[pgbouncer]
logfile = /var/log/postgresql/pgbouncer.log
pidfile = /var/run/postgresql/pgbouncer.pid
listen_addr = 127.0.0.1
listen_port = 6432
unix_socket_dir = /var/run/postgresql
auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
admin_users = carlos
pool_mode = statement
server_reset_query = DISCARD ALL
max_client_conn = 100
default_pool_size = 20
答案 0 :(得分:12)
如果您可以在“事务池模式”中运行pgbouncer,那么您最好。有一些功能,如果使用不起作用,但如果你不使用它。
default_pool_size然后控制你在pgbouncer和postgresql之间有多少连接,并把它留在20之类的东西可能是一个好主意。这意味着您可以在系统中拥有20个同时活动的事务,并且从您正在做的事情的描述中看起来不太可能。但是,您希望将该值调整为具有“合理余量”的值,而不是所需的最大同时事务数。然后,pgbouncer会愉快地在这20个连接上复用2000个连接,从而在数据库端保持良好的性能。