PostgreSQL - tcp_keepalives_idle - требуется пояснение - PullRequest
0 голосов
/ 11 мая 2019

Я читаю документы PostgreSQL по этому параметру tcp_keepalives_idle.

tcp_keepalives_idle (integer)

Указывает количество секунд бездействия, по истечении которых TCP должен отправить клиенту сообщение keepalive.Значение 0 использует системное значение по умолчанию.Этот параметр поддерживается только в системах, которые поддерживают TCP_KEEPIDLE или эквивалентный параметр сокета, и в Windows;в других системах оно должно быть равно нулю.В сеансах, подключенных через сокет Unix-домена, этот параметр игнорируется и всегда читается как ноль.

Вопросы:

1) Что именно означает этот TCP_KEEPIDLE?Я нахожу это на некоторых страницах руководства Linux, но не совсем понимаюКакие системы поддерживают TCP_KEEPIDLE, а какие нет?

2) Что означает «сеансы, связанные через сокет домена Unix»?У меня есть сервер PostgreSQL в AWS (RDS) и к нему подключаются сессии из разных ОС (Windows, Linux и т. Д.).Итак ... что означает эта штука сокета?

Обратите внимание, что этот вопрос связан с моим другим вопросом здесь

Запросы PostgreSQL, не прерываемые при завершении работы сервера приложений

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

Итак ... tcp_keepalives_idle в моей системе установлено на 300 (сек), но некоторые запросы продолжают выполняться даже в течение более длительного времени после того, как клиент, который их инициировал, имеетбыл убит (закрыт).И я все еще пытаюсь найти способ предотвратить это.

...