Что заставляет avg_wait_time pgbouncer быть> 0? - PullRequest
0 голосов
/ 14 февраля 2019

Документы описывают avg_wait_time как:

Время, затраченное клиентами на ожидание сервера в микросекундах (в среднем в секунду).

Мы видим случайные всплески в avg_wait_time (обычно это 0).Во время этих пиков, насколько я могу судить, существуют доступные / незанятые серверы.Что может быть причиной того, что время ожидания будет больше 0 в этих случаях?

1 Ответ

0 голосов
/ 26 февраля 2019

Чтение потока из hackernoon приводит к тому, что ваши пулы соединений исчерпаны, и новым соединениям нужно ждать, пока освободится свободное место либо для подключения к пулу, либо для перехода к фазе выполнения.

Эти подключения к серверу, к которым подключаются клиенты, «объединяются» - их количество ограничено и используется повторно.Из-за этого может случиться так, что в то время как клиент отправляет некоторый запрос (начало транзакции или выполнение запроса), соответствующий пул соединений с сервером исчерпан, то есть pgbouncer отклонил столько соединений, сколько ему было разрешено, и все они заняты (связаны с)некоторые другие клиенты.В этом сценарии PgBouncer помещает клиента в очередь, и соединение этого клиента переходит в состояние CL_WAITING.Это может также произойти, когда клиент только входит в систему, поэтому для этого также есть CL_WAITING_LOGIN: enter image description here

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