Estou executando software do lado do servidor em servidores Digital Ocean. Isso inclui Docker, NPM, Node.js e outros. O servidor está executando o Ubuntu 22.04.
Às vezes, o servidor trava aleatoriamente por vários minutos. Não há padrão em travamentos. Você não pode nem usar SSH no servidor. Após alguns minutos, o servidor retoma as operações normalmente.
Aqui estão as métricas de desempenho do servidor extraídas do painel da Digital Ocean durante o travamento:
Os servidores Digital Ocean são instalados sem um arquivo de troca para Linux.
Mesmo que o seu servidor tenha RAM suficiente para executar todos os programas, pode haver cenários em que os aplicativos Linux tenham dificuldades porque não há arquivo de troca, devido à forma como o gerenciamento de memória no Linux é implementado. Isso ocorre porque muitos aplicativos comprometem demais e acumulam memória que não usam, ou pode haver padrões de uso que fazem com que a RAM fragmentada fique inalocável por um momento.
A simples criação de um pequeno arquivo de troca provavelmente resolverá os problemas, mesmo que seja improvável que a troca em si tenha muita utilidade.
Recomenda-se que o arquivo de troca tenha o tamanho 1-2x da RAM.
Para criar e ativar o arquivo de troca do Linux (6 GB):
Verifique o uso de recursos: use ferramentas como top, htop ou ferramentas de monitoramento da Digital Ocean para monitorar o uso de CPU e memória quando o servidor trava. Se esses recursos atingirem o limite máximo de forma consistente, talvez seja necessário atualizar seu plano de servidor para um com mais recursos. Limites do contêiner: os contêineres do Docker têm limites de recursos (compartilhamentos de CPU, limites de memória) que podem causar problemas se excedidos. Verifique as configurações do contêiner do Docker (docker inspeciona <container_name> ou arquivos do Docker Compose) para garantir que estejam configuradas adequadamente.