【问题标题】:Pgbouncer on large client connections大型客户端连接上的 Pgbouncer
【发布时间】:2013-08-06 08:37:47
【问题描述】:

我需要配置我的 pgbouncer 以使用超过 2000 个客户端连接,我正在阅读一些关于如何使用最大连接数的信息,然后我明白了我必须做什么 ma​​x_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

【问题讨论】:

  • 那 2000 个客户是什么?他们是在尝试直接访问数据库,还是连接到 Web 应用程序或其他使用自己的用户查询数据库服务器的服务?这一切都不同。
  • 它们是来自gps监听器的连接,这个监听器每隔10秒从gps跟踪器接收数据,然后将数据存储在postgres数据库中
  • 如果监听器是唯一连接到 pgbouncer 的人,那么你只有一个客户端可以同时进行 n 个连接。多少取决于每个连接的持续时间。听众是个人电脑吗?它与数据库在同一台机器上吗? pgbouncer 在哪里听?在侦听器上还是在数据库服务器上?
  • 嗯,监听器是一个扭曲的应用程序,它管理多个协议,它为每个 gps 跟踪器设备创建一个连接,我已经找到了解决方案,但是谢谢

标签: postgresql pgbouncer


【解决方案1】:

如果您可以在“事务池模式”下运行 pgbouncer,那么您最好。有一些功能如果使用将无法使用,但如果您不使用它们。

default_pool_size 然后控制您在 pgbouncer 和 postgresql 之间有多少个连接,并将其保持在 20 左右可能是一个好主意。这意味着您可以在系统中拥有 20 个同时活跃的事务,并且从您正在做的事情的描述来看,这似乎不太可能。但是您希望将该值调整为在您需要的最大同时交易数量上具有“合理保证金”的值。然后,pgbouncer 将愉快地在这 20 个连接上复用您的 2000 个连接,在数据库端保持良好的性能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 2011-03-23
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多