Pgbouncer最佳实践:系列三( 二 )


有些只运行快速查询 , 因此在没有事务的情况下可以共享一个会话来处理上百个并发查询 。
一些角色成员对于会话级并发是安全的 , 并且总是使用事务 。 因此 , 他们可以安全地共享数百个并发事务的多个会话 。
有些角色过于复杂 , 无法与其他人共享会话 。 因此 , 您对它们使用会话池模式可以避免当所有“插槽”都已占用时连接错误 。
不要使用它代替HAProxy或其他负载均衡器 。 尽管pgbouncer具有一些可配置的功能来解决负载均衡器要解决的问题 , 例如dns_max_ttl , 并且可以为其设置DNS配置 , 但是大多数产品环境都使用HAProxy或其他用于HA的负载均衡器 。 这是因为HAProxy确实擅长以循环方式在服务器之间实现负载平衡 , 而不是pgbouncer 。 尽管pgbouncer对于postgres连接池更好 , 但最好使用一个小型守护程序来完美地执行一项任务 , 而不是使用较大的守护程序来完成两项任务 , 那样效果更糟 。
在对于连接数的建议值来讲 , 上文也给出了一个大致的结果 , 就是一般情况下设置为CPU核数的3-4倍左右 , 当然这个不是绝对值 , 应该是在与业务场景类似的硬件环境中充分进行测试后 , 才能够得出具体的数值 。
还有一点需要注意的是连接Pgbouncer的连接方式 , 网络连接和unixsocket连接方式 , 较网络连接 , unixsocket方式可能更加节省网络通信的开销 , 因此如果pgbouncer和数据库在一台机器部署 , 可以优选该方式;如果处于不同服务器上 , 则选择网络连接 。
了解更多PostgreSQL热点资讯、新闻动态、精彩活动 , 请访问中国PostgreSQL官方网站:www.postgresqlchina.com
解决更多PostgreSQL相关知识、技术、工作问题 , 请访问中国PostgreSQL官方问答社区:www.pgfans.cn
下载更多PostgreSQL相关资料、工具、插件问题 , 请访问中国PostgreSQL官方下载网站:www.postgreshub.cn