Na Amazon RDS, foram ajustados dois parâmetros importantes de configuração do banco de dados PostgreSQL para melhorar a performance e o gerenciamento de recursos.
idle_in_transaction_session_timeout=120000 | 2 minutos
Este parâmetro configura um limite de tempo para encerrar automaticamente sessões que estão ociosas dentro de uma transação.
- Bloqueios de Recursos: Sessões ociosas em transações podem manter bloqueios em recursos do banco de dados, impedindo que outras transações acessem esses recursos.
- Uso Ineficiente de Conexões: Conexões que ficam ociosas por muito tempo podem consumir recursos do servidor sem realizar trabalho útil, afetando a performance do banco de dados.
- Deadlocks: Sessões ociosas podem contribuir para situações de deadlock, onde duas ou mais transações esperam indefinidamente por recursos bloqueados umas pelas outras.
Exemplo de Configuração:
ALTER SYSTEM SET idle_in_transaction_session_timeout = '120000';
statement_timeout=900000 | 15 Minutos
Este parâmetro define o tempo máximo que qualquer comando SQL pode executar antes de ser cancelado automaticamente pelo servidor PostgreSQL.
- Prevenir Execuções Longas: Impede que consultas ou comandos longos ocupem recursos do banco de dados por períodos prolongados, afetando a performance.
- Melhorar a Performance Geral: Limita o impacto de consultas mal otimizadas ou inadvertidamente complexas.
- Gerenciamento de Recursos: Ajuda a garantir que os recursos do banco de dados sejam usados de maneira eficiente e estejam disponíveis para outras consultas.
Exemplo de Configuração:
ALTER SYSTEM SET statement_timeout = '900000';
Benefícios das Configurações Ajustadas
- Otimização de Recursos: Esses parâmetros ajudam a evitar o desperdício de recursos do banco de dados, garantindo que conexões e transações sejam gerenciadas de forma eficiente.
- Maior Estabilidade: Reduzem a ocorrência de situações que podem levar a bloqueios ou congestionamento no banco de dados.
- Melhor Performance Geral: Asseguram que o banco de dados mantenha uma performance consistente, mesmo sob carga elevada ou com consultas mal planejadas.
Essas configurações são especialmente importantes em ambientes de produção, onde a disponibilidade e a performance do banco de dados são cruciais para o funcionamento das aplicações.