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.
Como o PM2 pode melhorar o gerenciamento de aplicações Node.js em produção
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