Objetivos de la practica
- Aprender a utilizar comandos del terminal de Linux para comprobar el rendimiento de CPU, RAM, disco y sistema en general.
- Diagnosticar posibles cuellos de botella en el rendimiento del equipo.
- Documentar metricas del sistema de forma estructurada.
- Realizar pruebas de estres y monitorizar el comportamiento del sistema bajo carga.
- Comparar el estado del sistema en reposo y bajo estres para interpretar los resultados.
Requisitos previos
Antes de comenzar, verifica que cumples todos los requisitos marcando cada casilla:
iostat, mpstat, sar), htop (monitor interactivo de procesos) y stress (herramienta de pruebas de estres).
Contenido teorico — Herramientas de rendimiento en Ubuntu
Comandos principales de monitorizacion
| Comando | Categoria | Descripcion |
|---|---|---|
top |
General | Monitor de procesos en tiempo real, muestra CPU, RAM y procesos activos |
htop |
General | Version mejorada de top con interfaz visual, barras de colores y navegacion interactiva |
free |
RAM | Muestra la memoria RAM total, usada, libre, compartida, en buffer y en cache |
df |
Disco | Muestra el espacio en disco de los sistemas de archivos montados |
du |
Disco | Muestra el uso de disco de archivos y directorios individuales |
vmstat |
General | Estadisticas de memoria virtual, procesos, CPU, E/S y sistema |
iostat |
Disco | Estadisticas de entrada/salida de dispositivos de almacenamiento y CPU |
mpstat |
CPU | Estadisticas detalladas de uso de cada procesador/nucleo individual |
uptime |
General | Muestra el tiempo de actividad del sistema y la carga media (load average) |
ps |
General | Lista los procesos en ejecucion con informacion detallada |
lscpu |
CPU | Muestra informacion detallada de la arquitectura de la CPU |
lsblk |
Disco | Lista todos los dispositivos de bloque (discos, particiones) |
cat /proc/cpuinfo |
CPU | Informacion detallada del procesador desde el sistema de archivos virtual /proc |
cat /proc/meminfo |
RAM | Informacion detallada de la memoria desde el sistema de archivos virtual /proc |
dmesg |
General | Muestra mensajes del kernel, util para detectar errores de hardware |
sar |
General | Recoge, reporta y guarda estadisticas de actividad del sistema a lo largo del tiempo |
nproc |
CPU | Muestra el numero de nucleos de procesamiento disponibles |
uname -a |
General | Muestra toda la informacion del sistema: nombre del kernel, version, arquitectura |
Parte 1 — Informacion general del sistema (20 min)
Abre un terminal en tu VM con Ubuntu 24 y ejecuta los siguientes comandos para recopilar la informacion basica del sistema.
Comandos a ejecutar
- Ejecuta uname -a para ver la informacion del kernel y sistema.
- Ejecuta lsb_release -a para ver la version de Ubuntu.
- Ejecuta hostnamectl para ver el nombre del equipo y detalles del SO.
- Ejecuta lscpu para ver la informacion del procesador.
- Ejecuta free -h para ver la memoria RAM en formato legible.
- Ejecuta df -h para ver el espacio en disco en formato legible.
Ejemplo de salida de los comandos
Datos generales del sistema
| Dato | Valor obtenido |
|---|---|
| Nombre del equipo (hostname) | |
| Sistema operativo y version | |
| Kernel | |
| Procesador | |
| RAM total | |
| Espacio en disco total |
Captura 1: Salida de los comandos de informacion general
Pega una captura (Ctrl+V) o arrastra una imagen aqui
Terminal mostrando la salida de uname -a, lsb_release -a, hostnamectl, lscpu, free -h y df -h
Parte 2 — Rendimiento de CPU (30 min)
En esta seccion vamos a analizar en detalle el rendimiento del procesador utilizando varios comandos especializados.
Comandos a ejecutar
- Ejecuta lscpu para obtener la informacion detallada del procesador.
- Ejecuta cat /proc/cpuinfo | grep "model name" | head -1 para ver el modelo exacto de la CPU.
- Ejecuta nproc para ver el numero de nucleos disponibles.
- Ejecuta mpstat 1 5 para ver estadisticas de CPU cada segundo durante 5 muestras.
- Ejecuta uptime para ver la carga media del sistema (load average).
- Ejecuta top -bn1 | head -20 para ver un snapshot de los procesos con mayor uso de CPU.
Ejemplo de salida
Datos de rendimiento de CPU
| Dato | Valor obtenido |
|---|---|
| Modelo de CPU | |
| Nucleos fisicos | |
| Hilos totales (nproc) | |
| Frecuencia maxima (MHz) | |
| Carga media (load average 1/5/15 min) | |
| Uso actual de CPU (% idle de mpstat) |
Captura 2: Salida de comandos de rendimiento de CPU
Pega una captura (Ctrl+V) o arrastra una imagen aqui
Terminal mostrando la salida de lscpu, mpstat, uptime y top
Parte 3 — Rendimiento de memoria RAM (30 min)
Ahora vamos a analizar el uso de la memoria RAM y la memoria de intercambio (swap) del sistema.
Comandos a ejecutar
- Ejecuta free -h para ver la memoria en formato legible (humano).
- Ejecuta free -m para ver la memoria en megabytes (mas preciso).
- Ejecuta cat /proc/meminfo | head -10 para ver informacion detallada de la memoria del kernel.
- Ejecuta vmstat 1 5 para ver estadisticas de memoria virtual cada segundo durante 5 muestras.
- Ejecuta swapon --show para ver informacion sobre las particiones de swap activas.
Ejemplo de salida
Datos de rendimiento de memoria RAM
| Dato | Valor obtenido |
|---|---|
| RAM total | |
| RAM usada | |
| RAM disponible | |
| RAM en cache/buffer | |
| Swap total | |
| Swap usada |
Captura 3: Salida de comandos de rendimiento de RAM
Pega una captura (Ctrl+V) o arrastra una imagen aqui
Terminal mostrando la salida de free -h, free -m, cat /proc/meminfo, vmstat y swapon --show
Parte 4 — Rendimiento de disco (30 min)
En esta seccion analizaremos el rendimiento y el estado de los dispositivos de almacenamiento del sistema.
Comandos a ejecutar
- Ejecuta df -h para ver el uso de espacio de cada sistema de archivos montado.
- Ejecuta lsblk para listar todos los dispositivos de bloque y sus particiones.
- Ejecuta sudo fdisk -l para ver informacion detallada de los discos y particiones.
- Ejecuta iostat -x 1 3 para ver estadisticas extendidas de E/S cada segundo durante 3 muestras.
- Ejecuta du -sh /home/* para ver cuanto espacio ocupa cada directorio de usuario.
Ejemplo de salida
Datos de rendimiento de disco
| Dato | Valor obtenido |
|---|---|
| Dispositivo principal | |
| Tamano total | |
| Espacio usado | |
| Espacio disponible | |
| Porcentaje de uso (%) | |
| Lecturas/escrituras por segundo (iostat r/s y w/s) |
%util indica el porcentaje de tiempo que el disco esta ocupado atendiendo peticiones de E/S. Un valor cercano al 100% indica que el disco es un cuello de botella. Los valores r/s y w/s son lecturas y escrituras por segundo respectivamente.
Captura 4: Salida de comandos de rendimiento de disco
Pega una captura (Ctrl+V) o arrastra una imagen aqui
Terminal mostrando la salida de df -h, lsblk, iostat -x y du -sh /home/*
Parte 5 — Procesos y servicios (20 min)
Vamos a identificar los procesos que mas recursos consumen y los servicios que estan ejecutandose en el sistema.
Comandos a ejecutar
- Ejecuta ps aux --sort=-%cpu | head -11 para ver los 10 procesos con mayor uso de CPU.
- Ejecuta ps aux --sort=-%mem | head -11 para ver los 10 procesos con mayor uso de memoria.
- Ejecuta top -bn1 | head -15 para obtener un snapshot del estado general de procesos.
- Ejecuta systemctl list-units --type=service --state=running | head -20 para ver los servicios activos.
Ejemplo de salida
Top 5 procesos por uso de CPU
| Nombre | PID | CPU (%) | Memoria (%) | Usuario |
|---|---|---|---|---|
Captura 5: Salida de comandos de procesos y servicios
Pega una captura (Ctrl+V) o arrastra una imagen aqui
Terminal mostrando ps aux --sort=-%cpu, top -bn1 y systemctl list-units
Parte 6 — Prueba de estres y monitorizacion (30 min)
En esta seccion vamos a generar carga artificial en el sistema para observar como se comporta bajo estres y aprender a monitorizar en tiempo real.
Procedimiento paso a paso
- Abre dos terminales en tu VM (puedes usar Ctrl+Alt+T para abrir uno nuevo).
- En el Terminal 1, ejecuta htop para monitorizar en tiempo real.
- En el Terminal 2, anota primero los valores en reposo ejecutando uptime y free -h.
- En el Terminal 2, lanza la prueba de estres de CPU: stress --cpu 2 --timeout 30
- Mientras se ejecuta el estres (30 segundos), observa en htop como cambian las barras de CPU.
- Una vez terminada la prueba, ejecuta de nuevo uptime y free -h para comparar.
- Ejecuta sar -u 1 10 para capturar estadisticas de CPU durante 10 segundos (puedes lanzar otro stress en paralelo si quieres).
Comandos de estres
Metricas antes y despues del estres
| Metrica | Antes del estres (reposo) | Durante/despues del estres |
|---|---|---|
| Carga media (load average 1 min) | ||
| Carga media (load average 5 min) | ||
| Uso de CPU (% idle segun sar o htop) | ||
| RAM usada | ||
| Respuesta del sistema (subjetivo) |
stress --cpu 2 crea 2 procesos que consumen CPU al 100%. Si tu VM tiene 2 nucleos, veras ambos al maximo. El parametro --timeout 30 hace que se detenga automaticamente tras 30 segundos. Durante la prueba, el sistema puede volverse lento pero deberia recuperarse inmediatamente al terminar.
Captura 6: htop durante la prueba de estres
Pega una captura (Ctrl+V) o arrastra una imagen aqui
Captura de htop mostrando las barras de CPU al maximo durante la prueba de estres con stress --cpu 2
Parte 7 — Preguntas de reflexion (20 min)
Responde a las siguientes preguntas con tus propias palabras. Cada respuesta debe tener un minimo de 3 lineas.
1. Compara las herramientas de monitorizacion de rendimiento en Linux (top, htop, free, etc.) con las de Windows (Administrador de tareas, Monitor de recursos). Que ventajas e inconvenientes tiene cada sistema?
2. Explica que significa el "load average" (carga media) en Linux y como interpretar sus tres valores (1, 5 y 15 minutos). Pon un ejemplo practico de cuando seria preocupante.
3. En tu sistema, la memoria swap estaba en uso? Explica que es la swap, por que existe y en que situaciones su uso excesivo indicaria un problema de rendimiento.
4. Basandote en los datos que has recopilado en esta practica, si tuvieras que recomendar una mejora de hardware para este equipo (mas RAM, mejor CPU o disco mas rapido), cual elegirías y por que? Justifica tu respuesta con datos.
5. Que es el sistema de archivos virtual /proc en Linux? Por que es util para obtener informacion del sistema? Menciona al menos 3 archivos dentro de /proc y que informacion proporcionan.
Entrega de la practica
Capturas de pantalla requeridas
Comprueba que tienes todas las capturas necesarias:
| Captura | Descripcion | OK |
|---|---|---|
| Captura 1 | Informacion general del sistema (uname, lsb_release, lscpu, free, df) | |
| Captura 2 | Rendimiento de CPU (lscpu, mpstat, uptime, top) | |
| Captura 3 | Rendimiento de RAM (free, /proc/meminfo, vmstat, swapon) | |
| Captura 4 | Rendimiento de disco (df, lsblk, iostat, du) | |
| Captura 5 | Procesos y servicios (ps aux, top, systemctl) | |
| Captura 6 | htop durante la prueba de estres |
Formato del mensaje en Discord
Practica: Bloque 3, Practica 15 - Comprobacion del Rendimiento en Ubuntu 24
[Adjuntar documento PDF y capturas de pantalla]
Criterios de evaluacion
| Criterio | Puntuacion |
|---|---|
| Informacion general del sistema (Parte 1) | 1.0 punto |
| Rendimiento de CPU (Parte 2) | 1.5 puntos |
| Rendimiento de memoria RAM (Parte 3) | 1.5 puntos |
| Rendimiento de disco (Parte 4) | 1.5 puntos |
| Procesos y servicios (Parte 5) | 1.0 punto |
| Prueba de estres y monitorizacion (Parte 6) | 1.5 puntos |
| Preguntas de reflexion (Parte 7) | 1.0 punto |
| Capturas completas y claras (6 capturas) | 0.5 puntos |
| Total | 10 puntos |
Penalizaciones
| Motivo | Penalizacion |
|---|---|
| Entrega fuera de plazo (sin justificacion) | -2 puntos |
| Capturas insuficientes (menos de 3 de las 6 requeridas) | -1 punto |
| Respuestas copiadas de Internet o de otro companero | -3 puntos |
| Tablas de datos incompletas (mas del 30% en blanco) | -1.5 puntos |
| Respuestas de una sola linea en preguntas que piden minimo 3 lineas | -0.5 puntos por pregunta |
Lista de verificacion de entrega (firma del alumno)
Antes de subir tu practica, confirma que has incluido todo:
| Dato | Tu respuesta |
|---|---|
| Nombre del alumno | |
| Firma | |
| Fecha de entrega |