2014-11-10 3 views
0

Моя установка: postgresql.conf: max_connections = 100Мультипроцессный pgbouncer пулы: из доступных соединений

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 (который работает как отдельные процессы), и он отлично работает (хотя, почти всегда, а не когда у меня внезапный всплеск активности), когда я запускаю только одну команду вовремя и поднимаю много «недостаточно соединений» ', когда я запускаю сразу две команды.

Что делать?

ответ

1

Вы можете безопасно увеличить max_client_conn до большего количества. Это общее количество клиентов, которые могут подключаться кbgbouncer, а не к серверу PostgreSQL. Он может быть как можно выше, например, 2000 или даже выше.

Это действительно одна из основных целей пула соединений - для того, чтобы удерживать небольшое количество подключений к базе данных, одновременно позволяя большому количеству подключений конечного клиента к самому пуле.

Важно установить default_pool_size не более max_connections в файле postgresql.conf.

+0

хорошо, давайте попробуем это ... – scythargon

+0

извините, сэр, где это указано в документах pgbouncer? – scythargon

+0

спасибо, сэр, ты спас меня! – scythargon

Смежные вопросы