Inicio > Cursos > Linux & Terminal > Procesos y Monitoreo del Sistema
Linux & TerminalAdministracion AvanzadaLección 8 de 12

Procesos y Monitoreo del Sistema

Todo lo que se ejecuta en Linux es un proceso. Saber monitorear procesos y recursos del sistema es fundamental para mantener servidores saludables y detectar problemas antes de que se conviertan en caidas.

# VER PROCESOS

# ps: snapshot de procesos actuales
ps aux
# USER  PID  %CPU  %MEM   VSZ   RSS  TTY  STAT  START  TIME  COMMAND
# root    1   0.0   0.1  2456  1234  ?    Ss    Jun20  0:05  /sbin/init
# user  891   5.4  12.1  9876  5432  ?    Sl    10:15  2:30  node server.js

# Filtrar procesos
ps aux | grep node
# user  891  5.4  12.1  node server.js
# user  923  0.1   1.2  node worker.js

# Ver procesos en forma de arbol
ps auxf
pstree -p

# top: monitoreo en tiempo real
top
# Presiona:
#   M = ordenar por memoria
#   P = ordenar por CPU
#   k = matar un proceso
#   q = salir

# htop: version mejorada (mas visual)
htop
# CONTROLAR PROCESOS

# Matar un proceso por PID
kill 891          # Senal SIGTERM (terminar limpiamente)
kill -9 891       # Senal SIGKILL (forzar cierre inmediato)

# Matar por nombre
killall node      # Mata todos los procesos "node"
pkill -f "node server.js"  # Mata por patron del comando

# Prioridad de procesos
nice -n 10 ./script_pesado.sh    # Iniciar con prioridad baja
renice -n -5 -p 891              # Cambiar prioridad de proceso existente
# nice va de -20 (mas prioridad) a 19 (menos prioridad)

# Procesos en segundo plano
./backup.sh &                 # Ejecutar en background
Ctrl+Z                        # Pausar proceso actual
bg                            # Continuar en background
fg                            # Traer a primer plano
jobs                          # Ver procesos en background
# [1]+  Running  ./backup.sh &
# [2]-  Stopped  vim archivo.txt
# MONITOREO DE RECURSOS

# Memoria RAM
free -h
#              total    used    free   shared  buff/cache  available
# Mem:         16Gi    4.2Gi   8.1Gi    256Mi       3.7Gi     11Gi
# Swap:        2.0Gi   0.0Gi   2.0Gi

# Espacio en disco
df -h
# Filesystem  Size  Used  Avail  Use%  Mounted on
# /dev/sda1    50G   32G    18G   64%  /
# /dev/sdb1   200G   89G   111G   45%  /datos

# Que directorios ocupan mas espacio
du -sh /var/log/*
# 1.2G  /var/log/syslog
# 856M  /var/log/nginx
# 234M  /var/log/mysql

# Top 5 directorios mas pesados
du -sh /* 2>/dev/null | sort -rh | head -5
# 12G   /var
# 8.5G  /home
# 3.2G  /usr

# Carga del sistema (load average)
uptime
# 10:30:15 up 45 days, load average: 0.52, 0.78, 0.65
# Los 3 numeros: ultimo 1min, 5min, 15min
ConsejoSi el load average supera el numero de CPUs de tu servidor, el sistema esta sobrecargado. Usa nproc para ver cuantos CPUs tienes. Ejemplo: load 4.0 en un servidor de 2 CPUs = problemas.
← Expresiones Regulares en la TerminalCron y Automatizacion de Tareas →

Practica esta lección

Resuelve los ejercicios del curso de Linux & Terminal en la app, gratis y con corrección automática.

Empezar a practicar