1. Aumentar a Memória Alocada para o Node.js

Tecnologia infraestrutura e desenvolvimento

1. Aumentar a Memória Alocada para o Node.js

  1. Aumentar a Memória Alocada para o Node.js

Por padrão, o Node.js usa um limite de memória relativamente baixo (~2 GB para sistemas de 64 bits). Para aumentar esse limite, use a flag –max-old-space-size:

NODE_OPTIONS=”–max-old-space-size=4096″ npm run start:prod

Isso define o limite de memória para 4GB. Você pode ajustar esse valor conforme necessário, por exemplo, 8192 para 8GB.

Se estiver no Windows (cmd), use:

set NODE_OPTIONS=–max-old-space-size=4096 && npm run start:prod

  1. Rodar em um Ambiente com Mais Recursos

Se você estiver executando o projeto em um servidor, garanta que ele tenha CPU e memória suficientes. Em um ambiente de produção, geralmente é recomendado:

Um servidor com pelo menos 2 vCPUs e 4GB de RAM (para aplicações médias).
Escalar horizontalmente com balanceamento de carga (Nginx, PM2, Kubernetes).
  1. Usar o PM2 para Gerenciar e Otimizar a Execução

O PM2 é um gerenciador de processos para Node.js que melhora o desempenho e a disponibilidade do seu projeto.

Instale o PM2 globalmente:

npm install -g pm2

Inicie sua aplicação em modo cluster (caso seja compatível):

pm2 start npm –name “meu-projeto” — run start:prod -i max

-i max: Usa todos os núcleos da CPU disponíveis.
--name "meu-projeto": Dá um nome à instância.

Para persistir a execução mesmo após reinícios do servidor:

pm2 save
pm2 startup

  1. Verificar Leaks de Memória

Se o seu projeto estiver consumindo muitos recursos de forma anormal, pode haver vazamentos de memória. Use ferramentas como:

Chrome DevTools: Inspecione o heap do Node.js (chrome://inspect).
Heapdump: Gere dumps de memória para análise.

Exemplo de uso do heapdump:

const heapdump = require(‘heapdump’);
heapdump.writeSnapshot(‘./heapdump-‘ + Date.now() + ‘.heapsnapshot’);

  1. Utilizar um Servidor Web para Melhorar a Performance

Se o seu projeto for uma API ou aplicação web, evite expor diretamente o Node.js. Use um servidor como Nginx ou Apache para gerenciar requisições e cache.

Exemplo de configuração básica para Nginx:

server {
listen 80;
server_name meu-dominio.com;

location / {
    proxy_pass http://localhost:3000;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection 'upgrade';
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
}

}

Isso reduz a carga no Node.js, otimizando a entrega de conteúdo.

  1. Ativar o –production para Melhor Performance

Ao rodar o seu projeto, certifique-se de que ele está rodando em modo de produção:

NODE_ENV=production npm run start:prod

Isso desativa logs detalhados e otimiza a execução.

Essas otimizações ajudam a melhorar a performance do seu projeto. Se precisar de algo mais específico, me avise! 🚀

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *