Inspección de Procesos
top, htop y lsof para diagnosticar conflictos de puertos, procesos Node descontrolados y presión de recursos en hosts Linux que ejecutan APIs de Node.js.
Busca en todas las páginas de la documentación
top, htop y lsof para diagnosticar conflictos de puertos, procesos Node descontrolados y presión de recursos en hosts Linux que ejecutan APIs de Node.js.
Tarjeta de receta de referencia rápida - lista para copiar y pegar.
# Puerto en uso (EADDRINUSE)
lsof -i :3000
# o
ss -tlnp 'sport = :3000'
# Parada elegante
kill -TERM <PID>
sleep 5
kill -KILL <PID> # solo si sigue ejecutándose
# Instantánea de CPU/memoria
top -b -n 1 | head -20
ps aux | grep nodeCuándo usarlo:
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 # tiene éxitokill -TERM (SIGTERM) para que se ejecuten los hooks de apagado de Fastify/Expresskill -9 solo cuando el proceso ignora SIGTERM después de 10s# Encontrar pod
kubectl get pods -l app=orders-api
# Razón de OOM y reinicio
kubectl describe pod orders-api-7f8b9c-xyz | grep -A5 "Last State"
# Top dentro del contenedor (si la imagen tiene procps)
kubectl exec -it orders-api-7f8b9c-xyz -- top -b -n 1 | head -15
# Lista de procesos
kubectl exec orders-api-7f8b9c-xyz -- ps aux# Extracto típico de describe
Last State: Terminated
Reason: OOMKilled
Exit Code: 137memory.limit del contenedor con --max-old-space-size de Node si está configuradops aux | grep node
# node dist/server.js ← API puerto 3000
# node dist/workers/email.js ← sin puerto de escucha, CPU alta durante el lotelsof -i :3000htop
# F5 vista de árbol - ver PID 1 del contenedor padre
# F6 ordenar por MEM% o CPU%
# Filtrar: F4 escribir "node"| Herramienta | Mejor para |
|---|---|
| lsof | Qué PID posee el puerto 3000 |
| ss | Resumen de sockets sin instalar lsof |
| top | Instantánea rápida de CPU/memoria (todos los servidores) |
| htop | Ordenación interactiva y vista de árbol |
| kubectl describe | OOMKilled, recuento de reinicios, límites |
Usa ss -tlnp o instala lsof solo en la imagen de depuración - no en el Dockerfile de producción a menos que esté aprobado.
Sí. El pool de hilos de libuv y los trabajadores de V8 crean hilos. Preocúpate por el RSS de memoria y el retraso del bucle de eventos, no solo por el recuento de hilos.
No. Kubernetes reinicia el pod. Reduce la réplica o kubectl delete pod para un reinicio limpio después del drenaje.
Versiones de la pila: Esta página fue escrita para Node.js 24.18.0 (LTS activa), npm 10+, TypeScript 5.6+, Express 5, Fastify 5 y NestJS 11.
Revisado por Chris St. John·Última actualización: 16 jul 2026