У меня есть одна серверная база данных с postgresql 9.5 и pgbouncer 1.7, и есть 4 веб-приложения (с кластеризацией между ними), и эти 4 приложения подключены к серверу postgresql через pgbouncer и это веб-приложение для дистанционного обучения. Сервер базы данных с 256 ГБ ОЗУ и 64 ЦП и всеми запросами, которые идут от приложений к postgresql, работающему под пользователем "postgres".
Моя большая проблема, которую я не могу получить больше, чем вокруг 2500-2600 (в этом диапазоне) пользователей, даже если в приложении более 150 000 пользователей, и я обычно отслеживаю ЦП и ОЗУ, но не использую их вообще.
Мне нужно знать, что является лучшим методом примените для следующих конфигураций
pgbouncer.ini: -
[databases]
test_db = host=localhost port=5432 dbname=test_db
myapp1 = host=localhost port=5432 dbname=test_db pool_size=20 max_db_connections=20
myapp2 = host=localhost port=5432 dbname=test_db pool_size=20 max_db_connections=20
myapp3 = host=localhost port=5432 dbname=test_db pool_size=20 max_db_connections=20
myapp4 = host=localhost port=5432 dbname=test_db pool_size=20 max_db_connections=20
[pgbouncer]
logfile = /var/log/postgresql/pgbouncer.log
pidfile = /var/run/postgresql/pgbouncer.pid
listen_addr = 0.0.0.0
listen_port = 5433
unix_socket_dir = /var/run/postgresql
auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
admin_users = postgres
pool_mode = transaction
server_reset_query = RESET ALL;
ignore_startup_parameters = extra_float_digits
max_client_conn = 6000
autodb_idle_timeout = 3600
default_pool_size = 64
max_db_connections = 600
max_user_connections = 400