Discourse parou de funcionar - carga de CPU/RAM?

Olá a todos.

Espero que alguém possa me ajudar a resolver um problema que estamos enfrentando atualmente em nosso fórum :-
https://forum.combustionpunks.co.uk
Essa é uma história longa… mas quero fornecer todas as informações que possam ajudar a resolver o problema, então peço paciência. Ao longo disso, vocês notarão que não tenho muita experiência com Ubuntu :frowning:

Tudo estava funcionando perfeitamente há bastante tempo :smiley: até ontem à noite.
Estamos passando por uma pequena rebranding, atualizando logotipos e coisas do tipo, então ontem eu estava no painel administrativo fazendo upload dos novos logotipos. Também notei que estávamos algumas versões atrás, então executei as atualizações, tendo que fazê-las manualmente seguindo as instruções aqui:-

por exemplo:
cd /var/discourse
git pull
./launcher rebuild app

Parecia que tudo estava indo bem, as atualizações foram concluídas, os logotipos foram carregados e exibidos, testei alguns temas, voltei ao original e depois saí para uma atividade de engajamento social relacionada ao fórum… sim, fui a um pub para jantar com meus amigos.

Cerca de 30 minutos depois, enquanto estava fora, notamos que o fórum estava offline… um pequeno susto, mas então percebemos que a Digital Ocean estava com problemas, então fiquei mais tranquilo.

Voltei cerca de 2 horas depois, os problemas da DO foram resolvidos, mas o fórum ainda estava offline… sem problemas, reiniciei o droplet e tudo voltou a funcionar… cerca de 30 minutos depois, estava offline novamente…

Em seguida, pensei que seria melhor limpar qualquer outra atualização pendente, então tentei atualizar o Docker com:
wget -qO- https://get.docker.com/ | sh
Isso não pareceu fazer muita coisa.
Reconstruí o aplicativo ./launcher rebuild app
Não acredito que tenha sido atualizado, pois ao reconstruir o aplicativo, está dizendo:
docker version 17.05.0-ce depreciated e, ao executar docker version, está relatando 17.05.0-ce

Então notei que, pouco antes do fórum ficar offline, estávamos recebendo mensagens como:
Out of memory: kill process (convert) or sacrifice child
Out of memory: kill process (ruby) or sacrifice child

Executei o Htop

Muitas instâncias do sidekiq, encontrei uma postagem sobre reduzir a quantidade de threads recriadas de uma vez - reduzi de 80 para 2 - os problemas continuaram

Instâncias do convert rodando contra JPEGs em var/www/discourse/public/uploads/default/original/ (não sei como exibir o restante da string para ver contra quais imagens elas estão rodando)

Uso da CPU em 100% - Ruby var/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn -E

Atualizei o sistema operacional - agora estou executando Ubuntu 18.04
Docker ainda na versão 17.05.0-ce.

Redimensionei o droplet de 2GB 1vCPU 50GB ($10) para 3GB 1vCPU 50GB ($15)
Os problemas continuam.

Reiniciar o droplet ou reconstruir o Discourse faz com que ele volte a funcionar por um curto período (10 a 30 minutos) antes de ficar offline novamente.

Qualquer ajuda com isso seria muito apreciada, muitos agradecimentos antecipadamente
Matt

Há algum tempo, houve algumas mudanças na forma como as imagens são comprimidas. Provavelmente você está recebendo um grande volume de imagens sendo processadas. Isso deve diminuir em breve, mas se você tiver muitas imagens, pode demorar um pouco. Você pode executar

  ps -ax

Ou

 top

Para ver o que está em execução. Pressione q para sair do top.

Obrigado, @pfaffman. Vou deixar rodar um pouco mais e ver se consegue processar tudo e se estabilizar um pouco.

Você seguiu a maior parte do procedimento de solução de problemas que recomendamos, bom trabalho. Há muitas imagens no seu fórum?

Recomendo que, quando puder, atualize o Docker.

E quando fizer isso, lembre-se de reiniciar o sistema após a atualização do Docker. Não há nenhum aviso, e o Docker não funcionou para mim quando fiz a atualização ontem até que eu me lembrasse de reiniciar.

Muito obrigado, pessoal.

O problema ainda está ocorrendo :frowning: ruby /vazr/www/discourse/vendor/bundle/ruby/2.6.0/bin/unicorn -E usando 98% da CPU no momento, Fórum indisponível

Número de imagens, não tenho certeza do que vocês chamariam de uma quantidade enorme — há bastante, mas não somos um fórum gigante. O comando df mostra 80% dos 50GB usados; no painel de administração do Discourse, mostra 5,7GB de upload.

O comando de atualização do Docker que tentei não parece ter feito nada. Encontrei instruções sobre como instalar no Ubuntu 18, mas não sobre como atualizar… Devo seguir as instruções de instalação?

Antes da reinicialização do droplet esta manhã, não havia processos de conversão em execução; após a reinicialização, agora há 5 deles, utilizando aproximadamente 50% da CPU e da RAM. O restante parece estar sendo usado pelo Ruby, com processos Sidekiq usando recursos intermitentemente. O processador e a RAM continuam sendo totalmente utilizados o tempo todo.

Os processos de conversão continuam sendo encerrados por falta de memória.

Acreditam que ainda há uma fila de trabalho pendente? Um redimensionamento adicional do droplet ajudaria a processar essa fila? O fórum continua online por apenas até 30 minutos de cada vez, muitas vezes menos.

Não consegui resolver isso. Vou aumentar o tamanho do droplet para ver se ele consegue concluir o redimensionamento da imagem, caso seja isso que esteja fazendo.

Após redimensionar, certifique-se de executar discourse-setup para ajustar os parâmetros de memória e reconstruir (ou destruir e iniciar).