приложением > 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
Обсуждают сегодня