Падение соединения из postgresql на виртуальной машине Azure - PullRequest
0 голосов
/ 05 марта 2019

Я немного новичок в postgresql db. Я выполнил настройку в облаке Azure для моей базы данных PostgreSQL.

Это машина Ubuntu 18.04 LTS (4vCPU, 8 ГБ ОЗУ) с версией PostgreSQL 9.6.

Проблема, которая возникает, когда соединение с БД PostgreSQL некоторое время простаивает, скажем, от 2 до 10 минут, после чего соединение с БД не отвечает так, что не выполняет запрос и продолжает обрабатывать запрос.

То же самое относится и к моему JAVA Spring-boot Application. Соединение не отвечает, и запрос продолжает обрабатываться.

Это происходит случайным образом, так что время не отслеживается, иногда это происходит через 2 минуты, иногда через 10 минут, а иногда нет.

Я пробовал с параметрами файла конфигурации PostgreSQL. Я пробовал:

tcp_keepalive_idle, tcp_keepalive_interval, tcp_keepalive_count.

Также параметры Statement_timeout и session_timeout, но они все равно не меняются.

Любое предложение или помощь будут полезны.

Спасибо

1 Ответ

0 голосов
/ 03 апреля 2019

Если вы настраиваете соединение с БД PostgreSQL на виртуальной машине Azure, вы должны знать, что существуют тайм-ауты для несвязанных и исходящих соединений. В соответствии с https://docs.microsoft.com/en-us/azure/load-balancer/load-balancer-outbound-connections#idletimeout, исходящие соединения имеют 4-минутное время простоя. Этот тайм-аут не регулируется. Для входящего времени у вас есть возможность измениться на портале Azure.

Мы столкнулись с подобной проблемой и смогли решить ее на стороне клиента. Мы изменили конфигурацию Hikari по умолчанию при загрузке Spring следующим образом:

Хикари:

  • время ожидания соединения: 20000

  • время проверки: 20000

  • время простоя: 30000

  • максимальное время жизни: 40000

  • минимальное время простоя: 1
  • максимальный размер бассейна: 3
  • запрос на соединение: SELECT 1
  • connection-init-sql: SELECT 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...