Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Периодически получаю ошибку Timeout while getting a connection from pool, как лечить / 2 сообщений из 2, страница 1 из 1
24.06.2018, 14:50
    #39664811
Периодически получаю ошибку Timeout while getting a connection from pool, как лечить
Есть некий сервис, который использует NHibernate версии 3.3.0.4000, Postgres версии 9.1.13 и либу Npgsql 2.0.11.0. Для подключения к базе данных используется следующий ConnectionString "HOST=localhost;PORT=5432;PROTOCOL=3;DATABASE=base;USER ID=user;Password=password;POOLING=True;CONNECTIONLIFETIME=1000;MINPOOLSIZE=1;MAXPOOLSIZE=1024;COMMANDTIMEOUT=200;INTEGRATED SECURITY=False;" у сервера стоит maxconnection 200. Получаю вот эту ошибку Timeout while getting a connection from pool, которой завершается любая попытка открытия соединения с базой данных. Помогает только перезапуск сервиса. Что интересно запрос
SELECT COUNT(*) FROM pg_stat_activity; возвратил при последнем случаи возникновения ошибки число 148, тогда как максимальное количество разрешенных одновременных соединений с базой данных 200, как вы могли ранее прочитать.
...
Рейтинг: 0 / 0
24.06.2018, 15:16
    #39664817
Maxim Boguk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодически получаю ошибку Timeout while getting a connection from pool, как лечить
ЗавитушкинЕсть некий сервис, который использует NHibernate версии 3.3.0.4000, Postgres версии 9.1.13 и либу Npgsql 2.0.11.0. Для подключения к базе данных используется следующий ConnectionString "HOST=localhost;PORT=5432;PROTOCOL=3;DATABASE=base;USER ID=user;Password=password;POOLING=True;CONNECTIONLIFETIME=1000;MINPOOLSIZE=1;MAXPOOLSIZE=1024;COMMANDTIMEOUT=200;INTEGRATED SECURITY=False;" у сервера стоит maxconnection 200. Получаю вот эту ошибку Timeout while getting a connection from pool, которой завершается любая попытка открытия соединения с базой данных. Помогает только перезапуск сервиса. Что интересно запрос
SELECT COUNT(*) FROM pg_stat_activity; возвратил при последнем случаи возникновения ошибки число 148, тогда как максимальное количество разрешенных одновременных соединений с базой данных 200, как вы могли ранее прочитать.

По моему сочетание MAXPOOLSIZE=1024 с maxconnection 200 = к проблемам.
А вообще - смотрим в лог базы доходило там до 200 или нет.
Потом смотрим как с Npgsql смотреть чем у него пул занят в работающем приложении и разбираться там.

PS: ну или поставить pgbouncer по пути с transaction pooling и пусть долгоносик подавится.

--
Maxim Boguk
dataegret.ru
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Периодически получаю ошибку Timeout while getting a connection from pool, как лечить / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]