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.