0

私のセットアップ: postgresql.conf: max_connections = 100

pgbouncer 設定:

[databases]
markets_parser = host=localhost port=5432 dbname=markets_parser user=argon

datestyle=ISO connect_query='SELECT 1'

[pgbouncer]
logfile = /var/log/postgresql/pgbouncer.log
listen_addr = 127.0.0.1
listen_port = 6432

unix_socket_dir = /var/run/postgresql

auth_type = trust
auth_file = /etc/pgbouncer/userlist.txt
admin_users = postgres
stats_users = postgres
pool_mode = session
server_reset_query = DISCARD ALL

max_client_conn = 90

default_pool_size = 70
min_pool_size = 20

reserve_pool_size = 10

私はdjangoアプリケーション(サイトアプリケーションだけでなく、高負荷マルチスレッド解析メカニズムも)から一連のdjango管理コマンド(別のプロセスとして実行される)を使用しており、正常に動作します(ただし、ほとんどの場合、一度に 1 つのコマンドのみを実行すると、アクティビティの突然のスプラッシュ) が発生し、一度に 2 つのコマンドを実行すると、多くの「接続が不十分です」というエラーが発生します。

何をすべきか?

4

1 に答える 1

2

max_client_connより高い数に安全に増やすことができます。これは、サーバーではなく に接続 できるクライアントの総数です。2000 以上など、必要に応じて高くすることができます。pgbouncerPostgreSQL

これは実際、コネクション プーラーの主な目的の 1 つです。つまり、プーラー自体への多数のエンド クライアント接続を許可しながら、データベースに対して開いている少数の接続を保持することです。

重要なことは、ファイル内の設定default_pool_sizeより高く設定しないことです。max_connectionspostgresql.conf

于 2014-11-10T14:55:25.627 に答える