Pico de RAM e Upgrade no DO

Tenho um server do MTC Fácil que se mantém com ~5% de uso de CPU médio e ~40% de uso de RAM.
Esse server tem 8GB de RAM e 4 vCPU.

Rotineiramente, e com frequência aumentando conforme adiciono novos Mautics, picos extremos de RAM e CPU acontecem, conforme imagem abaixo. Reiniciar os Containeres dos Mautic impede que esses picos cheguem até 100%. Obviamente, quando chega a 100% trava tudo e preciso reiniciar o Droplet da DO ao invés dos Containeres. Gostaria de saber duas coisas.

  1. Qual o motivo desses picos? São as CRON rodando? Isto é normal?
  2. Quero dar upgrade no servidor e tenho 2 opções no próximo plano: 16GB de RAM com 2 vCPU dedicadas ou 8 vCPU compartilhadas. Qual devo usar?
    2A. O plano atual está num “Premium AMD”, se eu mudar para Intel, vai dar alguma bronca?

Aqui vai o histórico 14 dias e 7 horas.


Tive acompanhando uma outra pessoa que apresentou a mesma questão esta semana.
Pelo que a gente acompanhou, alguma coisa foi enviada pro Mautic, e a partir dai foi sendo executado alguma aplicação que entrou em looping ou algo o tipo foi enchendo a memoria até derrubar.
No caso dele, Não consegui ver a tempo.

No seu caso, confere pelo htop, qual é a aplicação que está consumindo mais memoria. Tem como ordenar pela coluna da memoria.

Se puder compartilhar aqui vai ajudar a descobrir.

1 Like

Eu havia tentado umas semanas atrás colocar a janelinha de consumo dos portainers aberta (salvei todos como favorito, abro com 2 cliques), mas como o evento era raro, acabei não detectando nenhuma anomalia. Vou abrir todos os dias, já que tá rolando 2x/semana.

Rodei o HTOP aqui, mas não consegui ler. Fiquei uns 20 minutos tentando sortar e filtrar mas não acho que saiu algo útil.


Tem uma aplicação que ajuda a monitorar esse tipo de coisa. Amanhã vou ver como instalar ela e te passo aqui.

Esse I/O do grafico é o do banco? Acho que vai ser necessário ajustar o cache do banco pra ele usar mais a memoria e menos o disco.

2 Likes

O I/O está compartilhado entre todos os Mautic, está o mesmo valor para todos. Não sei se é do banco.

Estou investigando aqui o servidor e com 3 possíveis soluções.

1. Criar uma Swipe File.

Isso supondo que os picos sobem, terminam o trabalho e descem. Daí talvez o servidor acesse o swap 1~2x por semana durante 5 minutos.

2. Rotacionar CRON.

Estou aprendendo mais sobre containers, neste momento tentando descobrir onde danado estão (posto assim que descobrir). O objetivo aqui é de colocar os crons de cada Mautic para rodar, pelo menos, não no mesmo momento. A teoria aqui é que existam 10 picos de 10% de RAM acontecendo ao mesmo tempo. Se esse for o caso e bastar colocar eles com 1 minuto de diferença, ao invés de picos de 150% de RAM, terei picos de 60%.

3. Reverter loops

Ontem revisei as campanhas de alguns clientes em busca do que você orientou: campanhas extremamente complexas com loops auto-dependentes. Encontrei uma desse estilo. Nesse sentido aqui, sei que manualmente consigo encontrar, estou então procurando uma forma de detectar automaticamente.

1 Like

O nome do container que eu falei é o Glances. Vou passar aqui a stack dele.
Você sobe e acessa ele na porta 61208 do seu servidor.
Esta aplicação ajuda a monitorar os eventos todos ao mesmo tempo, vai da pra saber exatamente o que está rolando na hora.

Pra poder monitorar os containers, você precisa dessa dependencia aqui na maquina:

apt install -y python3-pip; pip install --user --upgrade glances glances[docker]

Dai, depois executa esse comando:

docker run -d --restart="always" -p 61208-61209:61208-61209 -e GLANCES_OPT="-w" -v /var/run/docker.sock:/var/run/docker.sock:ro --pid host nicolargo/glances:latest-full

*não é uma aplicação muito leve, eu recomendo matar o container depois que ja tiver finalizado o diagnostico, pra não perder recursos.