Средняя продолжительность запроса увеличивается между pgbouncer и pgbouncer - PullRequest
0 голосов
/ 01 октября 2018

У меня есть настройка двух уровней pgbouncers (v 1.8 uptil PR 147), подключающихся к базе данных postgresql.Первый уровень pgbouncer получает запросы от нескольких служб, пытающихся подключиться к нескольким базам данных.Эти запросы объединяются первым слоем и пересылаются как новые запросы к базе данных, у которой второй уровень pgbouncer выполняется поверх базы данных postgresql (на том же хосте).Эти запросы объединяются вторым уровнем pgbouncer, а затем, наконец, отправляются в базу данных для выполнения. Режим TLS установлен на 'require' в обоих pgbouncers, поскольку они находятся на разных хостах. default_pool_size на первом слое PGB - 40 , а второй слой - 400 .База данных может обрабатывать максимум 500 подключений одновременно. режим пула установлен на 'транзакция' в обоих. В первом хосте pgbouncer есть встроенный скрипт, который может переключать трафик непосредственно на сервер postgresql (при необходимости).

| Services | -----> | Pgbouncer | --------> | Pgbouncer ----> DB |

Я замечаю, что после введения нового уровня базы данных на сервере postgresql средняя продолжительность запроса становится очень высокой в ​​периоды пиковой нагрузки, из-за чего клиент ожидает на первомслой pgbouncer начинает расти.Если я переключу коммутатор на этом хосте, чтобы отправить трафик непосредственно на сервер postgresql, средняя продолжительность запроса сразу же снизится, и все начнет возвращаться к нормальной жизни.Я могу понять, что введение нового слоя pgbouncer добавит один дополнительный прыжок, но это не должно так сильно повлиять на показатели.Каковы могут быть возможные причины того, что avg_query_duration высоко поднялся на первом PGB, и как я могу уменьшить его?

1 Ответ

0 голосов
/ 10 октября 2018

Мы только что решили эту проблему, увеличив ограничение дескриптора файла на pgbouncer, работающем на хосте PG.Предел FD был первоначально установлен в 1024 байта.Значение было увеличено до 64K https://unix.stackexchange.com/questions/345595/how-to-set-ulimits-on-service-with-systemd. Это число зависит от предела макс. Подключений, который может получить pgbouncer, и снижение этого значения пока не подходит для нас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...