Inspeção de Processos
top, htop e lsof para diagnosticar conflitos de porta, processos Node descontrolados e pressão de recursos em hosts Linux executando APIs Node.js.
Busque em todas as páginas da documentação
top, htop e lsof para diagnosticar conflitos de porta, processos Node descontrolados e pressão de recursos em hosts Linux executando APIs Node.js.
Cartão de receita de referência rápida - pronto para copiar e colar.
# Porta em uso (EADDRINUSE)
lsof -i :3000
# ou
ss -tlnp 'sport = :3000'
# Parada graciosa
kill -TERM <PID>
sleep 5
kill -KILL <PID> # apenas se ainda estiver em execução
# Snapshot de CPU/memória
top -b -n 1 | head -20
ps aux | grep nodeQuando usar isso:
Error: listen EADDRINUSE: address already in use :::3000$ npm run dev
Error: listen EADDRINUSE: address already in use :::3000
$ lsof -i :3000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 48291 dev 23u IPv6 0t... 0t0 TCP *:3000 (LISTEN)
$ kill -TERM 48291
$ npm run dev # bem-sucedidokill -TERM (SIGTERM) para que os hooks de desligamento do Fastify/Express sejam executadoskill -9 apenas quando o processo ignorar SIGTERM após 10s# Encontrar pod
kubectl get pods -l app=orders-api
# OOM e motivo da reinicialização
kubectl describe pod orders-api-7f8b9c-xyz | grep -A5 "Last State"
# Top dentro do container (se a imagem tiver procps)
kubectl exec -it orders-api-7f8b9c-xyz -- top -b -n 1 | head -15
# Lista de processos
kubectl exec orders-api-7f8b9c-xyz -- ps aux# Trecho típico do describe
Last State: Terminated
Reason: OOMKilled
Exit Code: 137memory.limit do container com --max-old-space-size do Node, se definidops aux | grep node
# node dist/server.js ← API porta 3000
# node dist/workers/email.js ← sem porta de escuta, CPU alta durante o batchlsof -i :3000htop
# Vista em árvore F5 - veja o PID 1 do container pai
# F6 ordena por MEM% ou CPU%
# Filtrar: F4 digite "node"| Ferramenta | Melhor para |
|---|---|
| lsof | Qual PID possui a porta 3000 |
| ss | Resumo de sockets sem instalar lsof |
| top | Snapshot rápido de CPU/memória (todo servidor) |
| htop | Ordenação interativa e vista em árvore |
| kubectl describe | OOMKilled, contagem de reinicialização, limites |
Use ss -tlnp ou instale lsof apenas na imagem de depuração - não no Dockerfile de produção, a menos que aprovado.
Sim. O pool de threads libuv e os workers V8 criam threads. Preocupe-se com memória RSS e atraso do event loop, não apenas com a contagem de threads.
Não. O Kubernetes reinicia o pod. Reduza a réplica ou use kubectl delete pod para uma reinicialização limpa após o esvaziamento.
Versões da Stack: Esta página foi escrita para Node.js 24.18.0 (Active LTS), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 e NestJS 11.
Revisado por Chris St. John·Última atualização: 16 de jul. de 2026