Я читаю документы 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 (сек), но некоторые запросы продолжают выполняться даже в течение более длительного времени после того, как клиент, который их инициировал, имеетбыл убит (закрыт).И я все еще пытаюсь найти способ предотвратить это.