Lab 4.1 - Visualización de Procesos
Objetivos
Al final de este laboratorio, usted será capaz de:
- Visualizar los procesos con ps, top, htop
- Comprender la información mostrada
- Filtrar y ordenar los procesos
- Monitorizar los procesos en tiempo real
Prerrequisitos
- Ubuntu 24.04 instalado
- Terminal abierto
- htop instalado (opcional pero recomendado)
Ejercicio 1: ps (Estado de Procesos)
Paso 1: Comandos Básicos
# Ver todos los procesos
ps aux
# Ver los procesos del usuario actual
ps
# Con más detalles
ps auxf # Árbol de procesos
# Ver un proceso específico
ps aux | grep firefox
Paso 2: Opciones Útiles
# Formato personalizado
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -10
# Procesos por usuario
ps -u $USER
# Procesos por PID
ps -p 1
# Procesos con árbol
pstree
pstree -p # Con PID
Paso 3: Análisis
# Top 10 por CPU
ps aux --sort=-%cpu | head -11
# Top 10 por memoria
ps aux --sort=-%mem | head -11
# Contar los procesos
ps aux | wc -l
# Por usuario
ps aux | awk '{print $1}' | sort | uniq -c | sort -rn
Ejercicio 2: top
Paso 1: Uso Básico
# Iniciar top
top
# Comandos en top:
# - 'q': Salir
# - 'k': Matar un proceso (ingresar PID)
# - 'r': Cambiar nice de un proceso
# - 'M': Ordenar por memoria
# - 'P': Ordenar por CPU
# - 'f': Cambiar las columnas mostradas
# - '1': Ver todos los CPUs
Paso 2: Modo Batch
# Ejecutar top en modo batch (una vez)
top -bn1 | head -20
# Guardar en un archivo
top -bn1 > top-output.txt
# Ver los procesos principales
top -bn1 | grep -A 20 "PID USER"
Ejercicio 3: htop (Mejorado)
Paso 1: Instalación
# Instalar htop
sudo apt update
sudo apt install htop
# Iniciar
htop
Paso 2: Funcionalidades de htop
# htop ofrece:
# - Interfaz colorida e intuitiva
# - Navegación con flechas
# - Filtrado en tiempo real (F4)
# - Búsqueda (F3)
# - Matar procesos (F9)
# - Cambiar nice (F7/F8)
# - Árbol de procesos (F5)
Paso 3: Configuración
# En htop:
# - F2: Setup (configuración)
# - F10: Salir
Ejercicio 4: Información Detallada
Paso 1: /proc
# Información sobre un proceso (reemplazar PID)
PID=$(pgrep -f firefox | head -1)
echo "PID: $PID"
# Estado
cat /proc/$PID/status
# Archivos abiertos
ls -l /proc/$PID/fd/
# Directorio de trabajo
readlink /proc/$PID/cwd
# Ejecutable
readlink /proc/$PID/exe
Paso 2: lsof (si está instalado)
# Instalar
sudo apt install lsof
# Archivos abiertos por un proceso
sudo lsof -p $PID
# Procesos usando un archivo
sudo lsof /var/log/syslog
# Conexiones de red
sudo lsof -i
Ejercicio 5: Monitorización en Tiempo Real
Paso 1: watch
# Monitorizar los procesos
watch -n 1 'ps aux --sort=-%cpu | head -10'
# Monitorizar un proceso específico
watch -n 1 'ps -p $PID -o pid,%cpu,%mem,cmd'
Paso 2: Script de Monitorización
# Crear un script
cat > ~/monitor-processes.sh << 'EOF'
#!/bin/bash
while true; do
clear
echo "=== $(date) ==="
echo
echo "Top 5 CPU:"
ps aux --sort=-%cpu | head -6
echo
echo "Top 5 Memoria:"
ps aux --sort=-%mem | head -6
echo
echo "Total procesos: $(ps aux | wc -l)"
sleep 2
done
EOF
chmod +x ~/monitor-processes.sh
# Iniciar: ./monitor-processes.sh
Ejercicio 6: Filtrado Avanzado
Paso 1: Por Nombre
# Encontrar todos los procesos que contienen "python"
ps aux | grep python
# Excluir el proceso grep en sí mismo
ps aux | grep python | grep -v grep
# Con pgrep
pgrep -a python
Paso 2: Por Usuario
# Procesos de un usuario
ps -u root
# Todos excepto root
ps aux | grep -v "^root"
Paso 3: Por Estado
# Procesos en ejecución
ps aux | grep " R "
# Procesos en espera
ps aux | grep " S "
# Procesos zombie
ps aux | grep " Z "
Verificación
Checklist
Verifique que usted puede:
- Usar ps para ver los procesos
- Usar top para monitorización en tiempo real
- Usar htop (interfaz mejorada)
- Filtrar y ordenar los procesos
- Ver la información detallada (/proc)
- Monitorizar en tiempo real
Preguntas de Reflexión
-
¿Cuál es la diferencia entre ps y top?
- ps: instantáneo
- top: tiempo real, interactivo
-
¿Qué significan los estados de los procesos (R, S, Z)?
- R: Running (en ejecución)
- S: Sleeping (en espera)
- Z: Zombie (terminado pero no limpiado)
-
¿Por qué se prefiere htop sobre top?
- Interfaz más intuitiva
- Navegación más fácil
- Más información visual
Próximos Pasos
- Lab 4.2: Control de Procesos
- Lab 4.3: Prioridades y Valores Nice
- Capítulo 4.2: Visualización de Procesos
Lab creado el: diciembre 2024 - Probado en Ubuntu 24.04