9

2000 を超えるクライアント接続で動作するように pgbouncer を構成する必要があります。最大接続数で動作する方法についての情報を読んでいたので、pgbouncer でmax_client_con = 2000を実行する必要があることを理解しましたが、 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
4

1 に答える 1

12

「トランザクション プーリング モード」で pgbouncer を実行できる場合は、最適です。使用すると機能しない機能がいくつかありますが、それらを使用しないと機能しません。

default_pool_size は、pgbouncer と postgresql の間の接続数を制御します。これを 20 程度にしておくのは、おそらく良い考えです。これは、システム内で同時に 20 のアクティブなトランザクションを持つことができることを意味します。あなたが行っていることの説明からすると、それはありそうもないことです。ただし、その値を、必要な同時トランザクションの最大数を超える「合理的なマージン」を持つ値に調整する必要があります。pgbouncer は、データベース側で良好なパフォーマンスを維持しながら、2000 の接続をこれらの 20 に喜んで多重化します。

于 2013-08-16T09:59:25.397 に答える