当连接数增加时 PgBouncer 性能下降

PgBouncer performance drops when connection count increases

我有一个专用的 PostgreSQL 服务器和一个 pgBouncer 服务器。所有连接都是通过 pgBouncer 建立的。 我使用 Apache JMeter 和 PHP 测试了系统。结果很奇怪。 500 个连接的吞吐量还不错,但当我测试使用更多连接时,它会下降。

这是测试结果:

pgbouncer 配置:

[databases]

maindb = host=212.212.322.323 port=5432 user=myuser dbname=mydb pool_size=1000 pool_mode=transaction

[pgbouncer]

logfile = /var/log/postgresql/pgbouncer.log
pidfile = /var/run/postgresql/pgbouncer.pid

listen_addr = *
listen_port = 6432

auth_type = trust
auth_file = /etc/pgbouncer/userlist.txt

pool_mode = session
max_client_conn = 1000
default_pool_size = 20

这是 pgbouncer 的已知限制。它仅使用一个 CPU,并且在连接数非常多的情况下效果不佳(对于较少的连接数,它既快速又有效)。有一些新项目可以代替 pgbouncer 用于此目的 - Odyssey or pgagroal.