~/docs /DevOps/CPU & RAM

DevOps

CPU & RAM

Imported from Notion: CPU & RAM

updated:: 2026.07.10

Qué resuelve

Comandos rápidos para monitorizar CPU, RAM y carga del sistema en Linux. Útil cuando una máquina va lenta, un servicio consume demasiado o necesitas identificar un cuello de botella inicial.

[!NOTE] ✅ Esta página se centra en recursos del sistema y procesos. Para servicios usa web/docs/DevOps/Systemd; para logs usa web/docs/DevOps/Logs & Journalctl.


Uso rápido

RAM

free -h

Qué mirar: available.

[!NOTE] 💡 En Linux, parte de la memoria marcada como usada puede ser caché recuperable. Para triage rápido, available suele ser más útil que free.

Ejemplo:

              total   used   free  shared  buff/cache  available
Mem:           16Gi   3.2Gi  8.5Gi  120Mi   4.3Gi       12Gi
Swap:           2Gi     0B    2Gi

CPU e inventario

lscpu
nproc

lscpu describe el hardware. No mide uso en tiempo real.

CPU y RAM en tiempo real

htop

Si no está instalado:

sudo apt update
sudo apt install htop

Alternativa básica:

top

Diagnóstico rápido

Carga media

uptime

Regla rápida:

  • carga menor que CPUs lógicas: normalmente asumible;

  • carga sostenida muy por encima de CPUs lógicas: revisar procesos, I/O o bloqueos;

  • carga alta con CPU baja: sospecha de disco, red o espera de I/O.

CPU por núcleo

mpstat -P ALL 1

Si no está disponible:

sudo apt install sysstat

RAM y swap

vmstat 1
swapon --show

[!NOTE] ⚠️ Swap usada de forma puntual no siempre es grave. Swap creciendo, mucha espera y sistema lento sí son señales de presión de memoria.


Procesos que más consumen

CPU

ps aux --sort=-%cpu | head

RAM

ps aux --sort=-%mem | head

Vista compacta

ps -eo pid,ppid,%cpu,%mem,cmd --sort=-%cpu | head -20

Servicio concreto

Ver estado

systemctl status NOMBRE.service

Ver procesos asociados a una unidad

systemctl status NOMBRE.service
systemctl show NOMBRE.service -p MainPID

Medir un PID concreto

ps -o pid,ppid,%cpu,%mem,etime,cmd -p PID

[!NOTE] ⚠️ Evita depender de pidof python3 si hay varios procesos Python. Localiza primero el proceso correcto por servicio, ruta o comando.


Cuándo usar cada comando

ComandoÚsalo paraTipo
free -hRAM disponible y swapResumen
uptimeCarga media y tiempo encendidoTriage
lscpuCaracterísticas de CPUInventario
nprocCPUs lógicas disponiblesInventario
htopDiagnóstico visual interactivoTiempo real
topAlternativa básica a htopTiempo real
mpstat -P ALL 1Uso de CPU por núcleoMétricas
vmstat 1Memoria, swap, I/O y CPUMétricas
ps aux --sort=-%cpuProcesos pesados por CPURápido
ps aux --sort=-%memProcesos pesados por RAMRápido

Errores comunes

  • Mirar solo free y no available.

  • Confundir lscpu con consumo en tiempo real.

  • No comparar carga media con número de CPUs lógicas.

  • Matar procesos sin entender si los relanza systemd.

  • Usar pidof con procesos genéricos como python3, node o java.


Checklist final

  • Revisé uptime para contexto de carga.

  • Revisé free -h y miré available.

  • Abrí htop o top.

  • Listé procesos por CPU y RAM.

  • Si era un servicio, lo comprobé con systemctl status.

  • Si el problema persiste, revisé logs en web/docs/DevOps/Logs & Journalctl.

- EOF -