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.
Qual o motivo desses picos? São as CRON rodando? Isto é normal?
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?
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.
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.
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.
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.