Como usar PM2 para gerenciar processos Node.js?

PM2 é uma ferramenta poderosa para gerenciar, monitorar e escalar aplicações Node.js, permitindo maior estabilidade e controle sobre seus processos.

Como usar PM2 para gerenciar processos Node.js?

O PM2 é uma ferramenta popular para gerenciar processos em Node.js. Ele permite que você execute, monitorize e escale facilmente suas aplicações, garantindo que seu servidor esteja sempre funcionando sem falhas. O PM2 também facilita o balanceamento de carga, o gerenciamento de logs e a reinicialização automática de processos quando necessário.

1. Instalando o PM2

A primeira coisa que você precisa fazer é instalar o PM2 globalmente no seu sistema. Isso pode ser feito através do npm:

npm install pm2 -g

Uma vez instalado, você pode começar a usar o PM2 para iniciar e gerenciar suas aplicações Node.js.

2. Iniciando uma aplicação com PM2

Para iniciar sua aplicação Node.js com o PM2, basta usar o seguinte comando:

pm2 start app.js

Esse comando executa sua aplicação app.js. O PM2 irá monitorar o processo e garantir que ele esteja sempre em execução.

3. Escalando sua aplicação com PM2

Uma das vantagens do PM2 é que ele pode escalar automaticamente sua aplicação para aproveitar ao máximo os núcleos de CPU disponíveis. Para isso, use a opção -i, que define o número de instâncias de sua aplicação. A opção max faz com que o PM2 crie uma instância para cada núcleo de CPU disponível no servidor:

pm2 start app.js -i max

Isso irá criar múltiplas instâncias da sua aplicação, garantindo que sua aplicação possa lidar com um tráfego maior e melhorar a performance geral.

4. Monitoramento da aplicação com PM2

O PM2 também oferece ferramentas de monitoramento para observar o desempenho da sua aplicação em tempo real. Você pode verificar o status de seus processos com o comando:

pm2 status

Esse comando exibe uma lista com todas as instâncias da sua aplicação, o uso de CPU e memória de cada processo, e o estado atual de cada instância (online ou offline).

Você também pode usar o comando pm2 monit para iniciar um monitoramento interativo da sua aplicação, onde você pode acompanhar em tempo real o desempenho dos processos.

5. Gerenciando Logs com PM2

Uma das características mais úteis do PM2 é o gerenciamento de logs. O PM2 coleta e armazena os logs de sua aplicação automaticamente, tornando mais fácil verificar se há erros ou problemas de desempenho.

Você pode acessar os logs da sua aplicação com o comando:

pm2 logs

Isso exibirá os logs em tempo real no terminal. Você também pode visualizar logs específicos de cada processo usando o ID do processo:

pm2 logs 0

Esse comando exibe os logs da aplicação que está rodando com o ID 0.

6. Reiniciando processos automaticamente

Uma das grandes vantagens do PM2 é a capacidade de reiniciar automaticamente processos quando eles falham. O PM2 verifica periodicamente se os processos estão ativos e reinicia qualquer instância que tenha falhado. Você pode configurar o PM2 para reiniciar a aplicação automaticamente quando o servidor for reiniciado, usando o seguinte comando:

pm2 startup

Este comando irá gerar o script necessário para iniciar o PM2 automaticamente quando o sistema for reiniciado. Para salvar o estado atual dos processos e garantir que eles sejam reiniciados, use:

pm2 save

7. Salvando e carregando a configuração

O PM2 também permite que você salve o estado atual dos processos e os recupere após uma reinicialização do servidor. Isso é útil se você deseja garantir que os mesmos processos e configurações sejam restaurados após uma reinicialização.

pm2 save

Para carregar a configuração salva, use o comando:

pm2 resurrect

8. Conclusão

O PM2 é uma ferramenta extremamente útil para gerenciar aplicações Node.js em produção. Ela oferece escala, monitoramento, logs e reinicialização automática, garantindo que sua aplicação permaneça estável e com bom desempenho. Ao usar o PM2, você pode aumentar a confiabilidade de sua aplicação, reduzir a sobrecarga manual e melhorar a experiência do usuário final.

Gerenciar aplicações Node.js pode ser desafiador quando se lida com múltiplas instâncias ou com falhas inesperadas. O PM2 facilita o gerenciamento e monitoramento de suas aplicações, tornando o processo mais automatizado e confiável. Além de fornecer logs e monitoramento de performance, ele também pode ser integrado a ferramentas de escalabilidade, como o Docker e Kubernetes, para fornecer ainda mais flexibilidade em ambientes de produção.

A capacidade de escala automática com PM2 permite que sua aplicação aproveite ao máximo os recursos do servidor, além de reiniciar automaticamente em caso de falha, o que é fundamental para ambientes de produção com alta disponibilidade.

Algumas aplicações:

  • APIs de alto desempenho
  • Sistemas de microserviços em Node.js
  • Plataformas de e-commerce com grandes volumes de tráfego
  • Plataformas de streaming de conteúdo
  • Aplicações de chat em tempo real

Dicas para quem está começando

  • Use o comando pm2 start para iniciar sua aplicação Node.js com PM2.
  • Teste a escalabilidade da sua aplicação com pm2 start -i max.
  • Use o pm2 logs para monitorar os logs da sua aplicação em tempo real.
  • Configure pm2 startup para garantir que sua aplicação seja reiniciada após a reinicialização do servidor.
  • Não se esqueça de usar pm2 save para salvar o estado atual dos seus processos e garantir que eles sejam restaurados após reinicialização.

Contribuições de Andressa Maria

Compartilhe este tutorial: Como usar PM2 para gerenciar processos Node.js?

Compartilhe este tutorial

Continue aprendendo:

Como configurar um balanceador de carga no Node.js?

Um balanceador de carga é essencial para distribuir as requisições entre múltiplas instâncias de uma aplicação Node.js, melhorando a escalabilidade e a performance.

Tutorial anterior

Como evitar memory leaks no Node.js?

Memory leaks são problemas comuns em aplicações que podem causar a degradação do desempenho ao longo do tempo. Em Node.js, é crucial entender como evitá-los e monitorar o uso de memória.

Próximo tutorial