Обычно PostgreSQL может справиться с сотнями или тысячами одновременных подключений при правильной настройке. Однако оптимальное количество пользователей для вашего конкретного случая может потребовать тестирования и настройки.
В случае, если ваша база данных достигает критической точки, есть несколько стратегий, которые можно применить для увеличения производительности PostgreSQL, такие как оптимизация запросов, настройка ресурсов сервера, горизонтальное масштабирование и использование кэширования.
pgBouncer - это программа, которая помогает оптимизировать производительность PostgreSQL за счет уменьшения количества подключений к серверу. Она работает как посредник между клиентами и серверами, обслуживая запросы на подключение, выполнение запросов и получение результатов. Это позволяет уменьшить количество соединений, которые непосредственно обращаются к PostgreSQL, что может улучшить производительность при большом количестве клиентов.
Установка:
apt install pgbouncer.
Настройка userlist.txt:
"prnwatch_user" "prnwatch_password"
Настройка pgbouncer.ini:
[databases] prnwatch_template = host=127.0.0.1 port=5432 dbname=PRNWATCH auth_user=prnwatch_user [pgbouncer] listen_port = 6432 listen_addr = * auth_type = md5 auth_file = d:\PGBouncer\userlist.txt logfile = d:\PGBouncer\pgbouncer.log pidfile = d:\PGBouncer\pgbouncer.pid admin_users = prnwatch_user pool_mode = transaction default_pool_size = 100 max_client_conn = 10000
Раздел [databases]:
Раздел [pgbouncer]:
"prnwatch_user" "md5145c741eaed0b9c05ae8444b74d987f0"
Регистрация pgBouncer как сервис:
pgbouncer --regservice pgbouncer.iniПосле этого запускаем сервис pgBouncer.
pgbouncer -d pgbouncer.ini
На каждом клиенте O&K Print Watch указываем новое соединения БД через pgBouncer.
Меняем строку соединения с БД в O&K Print Watch:
Provider=MSDASQL;Driver={PostgreSQL Unicode};Server=ИМЯ_ХОСТА_PGBOUNCER;Port=6432;Database=prnwatch_template;UID=prnwatch_user;PWD=prnwatch_password;C8=0
host=ИМЯ_ХОСТА_PGBOUNCER port=6432 dbname=prnwatch_template user=prnwatch_user password=prnwatch_password binary_parameters=yes
При использовании соединения с БД через pgBouncer необходимо отключить Use serverside prepare. В Windows версии O&K Print Watch для этого используется параметр C8=0 в строке соединения, в Linux версии binary_parameters=yes.
Перезапускаем O&K Print Watch Service:
net stop "O&K Print Watch Service" & sc start "O&K Print Watch Service"
systemctl restart printwatch
This website uses cookies.