=?utf-8?B?0J7Qu9C10LMg0KHQsNC80L7QudC70L7Qsg==?= <splarv@xxxxx> writes: > According to the documentation > https://www.postgresql.org/docs/12/runtime-config-connection.html > A backend must check connection to the client by tcp_keepalive messages. (Config option tcp_keepalives_idle). > But this is don't work if the backend is busy. You're reading something into the documentation that isn't there. The TCP keepalive mechanism is something that the OS does, independently of backend processing. The backend isn't going to notice loss of client connection until it tries to read or write on the connection. If it were free to improve this, we might do so. But it would be very much not free. regards, tom lane