Instância do AWS EC2 ficando sem memória executando o aplicativo NodeJs, não é possível identificar a causa raiz devido à supressão de log

Instância do AWS EC2 ficando sem memória executando o aplicativo NodeJs, não é possível identificar a causa raiz devido à supressão de log

Conforme declarado no título, temos um aplicativo NodeJS em execução em uma instância EC2 na AWS que esporadicamente fica sem memória e interrompe o processo.

Em termos de negócios, isso não é realmente um obstáculo, pois os sistemas redundantes garantem que outra instância seja ativada e disponibilizada por meio do balanceador de carga. Mas ainda gostaríamos de descobrir o que faz com que a instância fique sem memória para que possamos evitá-lo completamente.

Examinamos os logs que cercam a interrupção do processo para tentar descobrir o que está acontecendo, mas devido à falta de memória disponível, parece que o sistema operacional não consegue gravar nenhum log durante esse período. Depois de encerrar o processo, ele registra que suprimiu vários logs e continua normalmente. Portanto, assumimos que a supressão do log está nos impedindo de obter mais informações sobre a causa real do problema.

Já tentamos desativar a supressão de log, mas ele ainda não registra nada durante o tempo em que o processo não responde, exceto que agora não informa o número de logs que suprimiu.

Alguma ideia de como podemos descobrir o que está causando a falta de memória do processo?

Responder1

e mata o processo.

Oprimeirocoisa que você precisa fazer é parar de ficar sem memória. Reduza o excesso de comprometimento no host.

Adicione um novo arquivo em /etc/sysctl.d contendo (inicialmente):

vm.overcommit_memory = 2
vm.overcommit_ratio = 15

Em seguida, execute sudo sysctl -p (você pode ajustar a proporção mais tarde).

Então você pode começar a procurar o que está consumindo muita memória.

informação relacionada