Outro mistério do Discourse

Recebo um alerta do AWS CloudWatch às 21h09 ET, junto com alguns amigos que me mandam mensagem “ei, o discourse caiu?”

Não consigo me conectar via SSH à instância AWS Lightsail, e todas as métricas estão travadas/não reportando.

Eventualmente, desisto e paro/reinicio a instância Lightsail.
Serviço recuperado.

Verifico os logs após a recuperação do serviço, procurando aprender.

Eu rodo o discourse como uma única instância, então o erro às 21h05 sobre a conexão de rede do Redis me deixa perplexo.

Não consigo entender o que aconteceu, exceto que “algo” travou/falhou por “algum motivo”.

Qualquer pessoa que possa explicar ou deixar algumas pistas é apreciada.

Obrigado!

Quais são as especificações do servidor? Parece que está ficando sem recursos? Provavelmente CPU. Talvez haja alguma tarefa diária sendo executada naquele momento?

É uma instância lightsail de 1 vCPU, 1 GB de RAM e 40 GB de SSD.

O armazenamento está consumindo cerca de 60% e, quando faço limpezas, ele cai bastante.

A AWS mostra que estou sem créditos de CPU burstable, o que é estranho porque as outras métricas não suportam isso.

É uma comunidade bem pequena (20-30 participantes ativos), então ficarei surpreso se houver uma restrição real de CPU ou RAM.

Não há nenhuma tarefa diária que eu saiba, exceto algo que o Discourse possa agendar por padrão.

1GB com swap é o mínimo absoluto para executar o Discourse.

Há quanto tempo esta instância está ativa? Qual o tamanho do banco de dados?

3 curtidas

Verificarei o tamanho do banco de dados, não espero que seja grande (os backups têm cerca de 57 MB).

O tempo de atividade da instância não chega a dez horas, pois a recuperação exigiu a parada e reinicialização do servidor virtual - não consegui obter uma conexão de shell ou console.

Tem funcionado bem neste tipo de instância desde que a construí (fevereiro de 2021, como um palpite).

Isso parece o que acontece quando a AWS move sua VM de um host para outro e a deixa em um estado estranho por causa disso. Geralmente, uma reinicialização resolve.

5 curtidas

O tamanho total do banco de dados é 423 MB.

As maiores tabelas são
Posts 66 MB
Post_timings 60 MB

Ocorreu uma segunda falha semelhante de “alta carga”.

Vou supor que seja contenção de recursos.

Alguém já tentou usar o snapshot do Lightsail para criar um snapshot da instância e restaurá-lo em uma instância maior como método de upgrade?

Você pode tentar reiniciar a instância da AWS, isso pode resolver muitos problemas.

Mudei usando um snapshot do Lightsail de 1 CPU, 1 GB de RAM e 40 GB SSD para 2 CPUs, 4 GB de RAM e 80 GB de SSD.

Além de ter que desanexar o IP público e reanexá-lo, o que foi simples o suficiente, minhas preocupações restantes são “o que eu perdi”?

Há algo (backups, e-mail, configuração de bucket S3, etc.) que eu deva verificar ou preciso reexecutar algum parâmetro de instalação inicial para aproveitar os recursos atualizados?

Estou pensando que, com base neste link, posso aumentar o db_shared_buffer para pelo menos 1 GB.
O app.yml atual diz 128 MB, também indica ajuste automático na inicialização.

1GB é suficiente para um sistema de 4GB. Certifique-se de também atualizar unicorn_workers para 4.

Recomendação usual se você estivesse mudando de servidor seria reexecutar discourse-setup, que cuidaria do acima automaticamente.

1 curtida

Obrigado. Estou agora mergulhando fundo no Prometheus.

Bom conteúdo.