Problema de desempenho do AWS RDS Postgres

1

Estamos usando o rds (postgres) com o tipo de instância como db.m4.2xlarge.

Geralmente, a maior parte do tempo de conexões é de 8 a 10. Mas em algumas ocasiões, o número de conexões aumenta para 100-200. O banco de dados torna-se não responsivo. DB não-responsividade vimos muitas vezes em casos de pico súbito em conexões de número ou leitura (portanto, mesmo nos casos em que as conexões aumentaram de 10 para 100).

As consultas que estão sendo executadas no máximo levam 2 segundos para serem executadas.

Meu servidor de aplicativos está em execução na pilha django / python (com Gunicorn). A latência desses servidores aumenta quando o tempo de resposta do servidor de banco de dados aumenta.

Quaisquer mudanças na configuração de postgres rds que devemos fazer para melhorar o desempenho (atualmente a maioria das configurações é padrão)?

    
por Neo 23.05.2016 / 14:21

2 respostas

3

Eu estava tendo o mesmo problema. O postgresql é configurado no AWS RDS e estava tendo 100% de utilização de cpu mesmo depois de aumentar a instância. Depurei com o método mostrado aqui e um dos métodos usados para eu.

Eu verifiquei a consulta em execução há mais tempo e soube que certas consultas estavam paradas e estavam em execução há mais de 3-4 horas. Para verificar desde quanto tempo a consulta está sendo executada, execute o seguinte comando:

SELECT max(now() - xact_start) FROM pg_stat_activity
                               WHERE state IN ('idle in transaction', 'active');

Se isso for mais de uma hora, esse é o problema. Elimine a conexão longa e limite a idade máxima da conexão do lado do aplicativo.

    
por 11.10.2016 / 21:43
0

Eu apostaria que você tem uma consulta que é particularmente lenta. Quando isso acontece, as conexões se acumulam atrás dele. Comecei identificando a consulta problemática e depois descobri como corrigi-la.

    
por 24.05.2016 / 02:46