← Teoría

Practica 15: Comprobacion del Rendimiento en Ubuntu 24

Modulo: MF0953_2 — Montaje de Equipos Microinformaticos
Unidad Formativa: UF0852 — Instalacion y Configuracion de Sistemas Operativos
Bloque: 3 — Diagnostico y Reparacion de Sistemas
Duracion estimada: 3 horas (1 sesion)
Modalidad: Trabajo individual
Herramientas: VirtualBox + VM con Ubuntu 24

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:

Instalacion de herramientas necesarias: Antes de empezar, abre un terminal y ejecuta el siguiente comando para instalar algunas herramientas que usaremos durante la practica:
sudo apt install sysstat htop stress -y
Esto instalara sysstat (incluye 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

  1. Ejecuta uname -a para ver la informacion del kernel y sistema.
  2. Ejecuta lsb_release -a para ver la version de Ubuntu.
  3. Ejecuta hostnamectl para ver el nombre del equipo y detalles del SO.
  4. Ejecuta lscpu para ver la informacion del procesador.
  5. Ejecuta free -h para ver la memoria RAM en formato legible.
  6. Ejecuta df -h para ver el espacio en disco en formato legible.

Ejemplo de salida de los comandos

$ uname -a Linux ubuntu-vm 6.8.0-41-generic #41-Ubuntu SMP PREEMPT_DYNAMIC ... x86_64 GNU/Linux $ lsb_release -a Distributor ID: Ubuntu Description: Ubuntu 24.04.1 LTS Release: 24.04 Codename: noble $ hostnamectl Static hostname: ubuntu-vm Icon name: computer-vm Chassis: vm Machine ID: ... Operating System: Ubuntu 24.04.1 LTS Kernel: Linux 6.8.0-41-generic Architecture: x86-64 $ lscpu Architecture: x86_64 CPU(s): 2 Model name: Intel(R) Core(TM) i7-... CPU max MHz: 3600.0000 $ free -h total used free shared buff/cache available Mem: 3.8Gi 1.2Gi 1.5Gi 50Mi 1.1Gi 2.4Gi Swap: 2.0Gi 0B 2.0Gi $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 50G 12G 36G 25% /

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

Preview

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

  1. Ejecuta lscpu para obtener la informacion detallada del procesador.
  2. Ejecuta cat /proc/cpuinfo | grep "model name" | head -1 para ver el modelo exacto de la CPU.
  3. Ejecuta nproc para ver el numero de nucleos disponibles.
  4. Ejecuta mpstat 1 5 para ver estadisticas de CPU cada segundo durante 5 muestras.
  5. Ejecuta uptime para ver la carga media del sistema (load average).
  6. Ejecuta top -bn1 | head -20 para ver un snapshot de los procesos con mayor uso de CPU.

Ejemplo de salida

$ cat /proc/cpuinfo | grep "model name" | head -1 model name : Intel(R) Core(TM) i7-10750H CPU @ 2.60GHz $ nproc 2 $ mpstat 1 5 Linux 6.8.0-41-generic (ubuntu-vm) ... Average: CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle Average: all 2.40 0.00 1.20 0.00 0.00 0.00 0.00 0.00 96.40 $ uptime 10:30:15 up 1:25, 1 user, load average: 0.05, 0.10, 0.08

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)
Como interpretar el load average: El load average muestra la carga del sistema en los ultimos 1, 5 y 15 minutos. Un valor de 1.0 en un sistema con 1 nucleo significa que la CPU esta al 100%. Si tienes 2 nucleos, un load average de 2.0 significa 100% de uso. Valores por encima del numero de nucleos indican que hay procesos en cola esperando CPU.

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

Preview

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

  1. Ejecuta free -h para ver la memoria en formato legible (humano).
  2. Ejecuta free -m para ver la memoria en megabytes (mas preciso).
  3. Ejecuta cat /proc/meminfo | head -10 para ver informacion detallada de la memoria del kernel.
  4. Ejecuta vmstat 1 5 para ver estadisticas de memoria virtual cada segundo durante 5 muestras.
  5. Ejecuta swapon --show para ver informacion sobre las particiones de swap activas.

Ejemplo de salida

$ free -h total used free shared buff/cache available Mem: 3.8Gi 1.2Gi 1.5Gi 50Mi 1.1Gi 2.4Gi Swap: 2.0Gi 0B 2.0Gi $ free -m total used free shared buff/cache available Mem: 3891 1230 1536 51 1125 2456 Swap: 2047 0 2047 $ cat /proc/meminfo | head -10 MemTotal: 3985408 kB MemFree: 1572864 kB MemAvailable: 2515200 kB Buffers: 65536 kB Cached: 987136 kB ... $ vmstat 1 5 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 1572864 65536 987136 0 0 5 2 50 100 2 1 97 0 0 ... $ swapon --show NAME TYPE SIZE USED PRIO /swapfile file 2G 0B -2

Datos de rendimiento de memoria RAM

Dato Valor obtenido
RAM total
RAM usada
RAM disponible
RAM en cache/buffer
Swap total
Swap usada
Diferencia entre "free" y "available": La memoria "free" es la que no se esta usando para nada. La memoria "available" incluye la memoria libre mas la que esta en cache/buffer y que el sistema puede liberar inmediatamente si un programa la necesita. Por eso, "available" siempre es mayor que "free" y es el valor mas relevante para saber cuanta RAM tienes realmente disponible.

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

Preview

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

  1. Ejecuta df -h para ver el uso de espacio de cada sistema de archivos montado.
  2. Ejecuta lsblk para listar todos los dispositivos de bloque y sus particiones.
  3. Ejecuta sudo fdisk -l para ver informacion detallada de los discos y particiones.
  4. Ejecuta iostat -x 1 3 para ver estadisticas extendidas de E/S cada segundo durante 3 muestras.
  5. Ejecuta du -sh /home/* para ver cuanto espacio ocupa cada directorio de usuario.

Ejemplo de salida

$ df -h Filesystem Size Used Avail Use% Mounted on tmpfs 391M 1.5M 390M 1% /run /dev/sda2 49G 12G 35G 26% / tmpfs 2.0G 0 2.0G 0% /dev/shm /dev/sda1 512M 6.1M 506M 2% /boot/efi $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 50G 0 disk ├─sda1 8:1 0 512M 0 part /boot/efi └─sda2 8:2 0 49.5G 0 part / $ iostat -x 1 3 ... Device r/s w/s rkB/s wkB/s rrqm/s wrqm/s %util sda 1.50 3.20 24.00 51.20 0.10 1.50 0.80 $ du -sh /home/* 4.2G /home/alumno

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)
Sobre iostat y %util: El valor %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/*

Preview

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

  1. Ejecuta ps aux --sort=-%cpu | head -11 para ver los 10 procesos con mayor uso de CPU.
  2. Ejecuta ps aux --sort=-%mem | head -11 para ver los 10 procesos con mayor uso de memoria.
  3. Ejecuta top -bn1 | head -15 para obtener un snapshot del estado general de procesos.
  4. Ejecuta systemctl list-units --type=service --state=running | head -20 para ver los servicios activos.

Ejemplo de salida

$ ps aux --sort=-%cpu | head -11 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND alumno 1234 5.2 3.1 456789 12345 ? Sl 10:00 1:23 /usr/bin/gnome-shell alumno 2345 2.1 1.5 234567 6789 ? Sl 10:00 0:30 /usr/bin/Xwayland root 456 1.0 0.5 123456 2345 ? Ss 09:58 0:15 /usr/lib/xorg/Xorg ... $ systemctl list-units --type=service --state=running | head -20 UNIT LOAD ACTIVE SUB DESCRIPTION accounts-daemon.service loaded active running Accounts Service cron.service loaded active running Regular background program processing NetworkManager.service loaded active running Network Manager ssh.service loaded active running OpenBSD Secure Shell server ...

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

Preview

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

  1. Abre dos terminales en tu VM (puedes usar Ctrl+Alt+T para abrir uno nuevo).
  2. En el Terminal 1, ejecuta htop para monitorizar en tiempo real.
  3. En el Terminal 2, anota primero los valores en reposo ejecutando uptime y free -h.
  4. En el Terminal 2, lanza la prueba de estres de CPU: stress --cpu 2 --timeout 30
  5. Mientras se ejecuta el estres (30 segundos), observa en htop como cambian las barras de CPU.
  6. Una vez terminada la prueba, ejecuta de nuevo uptime y free -h para comparar.
  7. Ejecuta sar -u 1 10 para capturar estadisticas de CPU durante 10 segundos (puedes lanzar otro stress en paralelo si quieres).

Comandos de estres

# Instalar stress (si no lo hiciste antes) sudo apt install stress -y # Verificar los valores en reposo ANTES del estres uptime free -h # Lanzar prueba de estres de CPU (2 nucleos, 30 segundos) stress --cpu 2 --timeout 30 # Tras el estres, comprobar de nuevo uptime free -h # Capturar estadisticas de CPU durante 10 segundos con sar sar -u 1 10

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)
Sobre la prueba de estres: El comando 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

Preview

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

Nombre: [Tu nombre y apellidos]
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
Fecha limite: Indicada por el profesor en el canal de Discord.

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

Entrega esta practica en el canal #entrega-practicas del Discord del curso.

Formato del mensaje: Nombre: [tu nombre] | Practica: Bloque 3, Practica 15 - Comprobacion del Rendimiento en Ubuntu 24

Practica correspondiente al Bloque 3 - Diagnostico y Reparacion de Sistemas (Practica 15)