|
Периодически получаю ошибку Timeout while getting a connection from pool, как лечить
|
|||
---|---|---|---|
#18+
Есть некий сервис, который использует 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, как вы могли ранее прочитать. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2018, 14:50 |
|
Периодически получаю ошибку Timeout while getting a connection from pool, как лечить
|
|||
---|---|---|---|
#18+
ЗавитушкинЕсть некий сервис, который использует 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2018, 15:16 |
|
|
start [/forum/topic.php?fid=53&msg=39664811&tid=1995711]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
11ms |
get forum data: |
4ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 148ms |
0 / 0 |