Vamos abordar configurações tanto no sistema operacional (neste caso, Linux), quanto configurações o PostgreSQL.

Configurando um tempo limite pelo Linux

Para configurarmos o sistema operacional para descartar conexões com 140 segundos (sendo 60 segundos de inatividade + 8 pacotes de manutenção de atividade em 10 intervalos de segundos) depois de perder a conectividade, execute os seguintes comandos:

sysctl -w net.ipv4.tcp_keepalive_time=60 net.ipv4.tcp_keepalive_probes=8 net.ipv4.tcp_keepalive_intvl=10

Configurando um tempo limite pelo PostgreSQL

Localize o arquivo postgres.conf (se for preciso, verifique qual pasta o serviço no Linux utiliza), em TCP Settings alteraremos a linha tcp_keepalives_idle para desconectar as conexões em inativas há 8 horas (28.800 segundos). Para isso, execute o seguinte comando:

vim /folder_do_postgresql/postgres.conf

Pressione a tecla INSERT, para entrar em modo de edição, localize a linha tcp_keepalives_idle e deixe da seguinte forma:

tcp_keepalives_idle = 28800

Ao final, pressione a tecla ESC para sair do modo de edição e digite :wq! para salvar e sair, em seguida reinicie o PostgreSQL para que as configurações tenham efeito.

Fontes/Referências

https://www.gnugk.org/keepalive.html
https://postgresqlco.nf/doc/en/param/tcp_keepalives_idle
https://postgresql.org/docs/current/runtime-config-connection.html
https://stackoverflow.com/questions/2166872/how-to-use-tcp-keepalives-settings-in-postgresql

Mais Informações

Esperamos ter te ajudado e estaremos sempre a disposição para mais informações.

Se você tem interesse em algum assunto específico, tem alguma dúvida, precisa de ajuda, ou quer sugerir um post, entre em contato conosco pelo e-mail equipe@nvlan.com.br.

NVLAN - Consultoria