приложением > Haproxy > Pgbouncer > Postgres. Кластер постгрес сформирован на основе Patroni.
Периодически приложение выдает ошибку "server conn crashed". В это время на pgbouncere в логах:
"pooler error: server conn crashed?"
на постгресе в логах:
FATAL: invalid frontend message type 32
ERROR: invalid message format
Данная ошибка наблюдается 1-2 раза в час.
Конфигурация пгбаунсера:
[databases]
postgres = host=127.0.0.1 port=5432 dbname=postgres
* = host=127.0.0.1 port=5432
[pgbouncer]
logfile = /var/log/pgbouncer/pgbouncer.log
pidfile = /var/run/pgbouncer/pgbouncer.pid
listen_addr = 10.0.0.32
listen_port = 6432
unix_socket_dir = /var/run/postgresql
auth_type = md5
auth_file = /etc/pgbouncer/userlist.txt
admin_users = postgres
ignore_startup_parameters = extra_float_digits,geqo
pool_mode = transaction
max_client_conn = 10000
default_pool_size = 80
min_pool_size = 20
pkt_buf = 8192
listen_backlog = 4096
log_connections = 0
log_disconnections = 0
Конекшин стринг на вебнодах:
"DefaultConnection": "Server=10.0.0.100;Port=5432;Database=;User Id=_;Password=_;Minimum Pool Size=5;Maximum Pool Size=100;"
Точно такого не было, но попробуйте Maximum Pool Size поднять до 500
пробовал ставить 400, результат тотже( когда без хапрокси, то ошибок меньше на день, но все равно есть.
хм, тогда точно надо в haproxy timeout'ы поднять, т.к. она балансирует БД
сейчас такой конфиг. учитывая, что они в одной локальной сети разве 15 сек может быть мало? global maxconn 100000 log /dev/log local0 log /dev/log local1 notice chroot /var/lib/haproxy stats socket /run/haproxy/admin.sock mode 660 level admin expose-fd listeners stats timeout 30s user haproxy group haproxy daemon defaults mode tcp log global retries 2 timeout queue 15s timeout connect 15s timeout client 60m timeout server 60m timeout check 20s
Обсуждают сегодня