Rendimiento
This content is not available in your language yet.
11.1 Monitorización de Rendimiento en Linux
Sección titulada «11.1 Monitorización de Rendimiento en Linux»Introducción
Sección titulada «Introducción»La monitorización de rendimiento es una disciplina crítica en la administración de sistemas. Un servidor no falla de forma repentina: degrada su rendimiento progresivamente antes de colapsar. Detectar estos síntomas de forma anticipada permite evitar incidentes, optimizar recursos y garantizar la disponibilidad de los servicios.
Para un Sysadmin senior, monitorizar no es simplemente ejecutar comandos puntuales, sino entender cómo interactúan CPU, memoria, disco y red, y cómo estas métricas reflejan el comportamiento real de las aplicaciones.
Este capítulo introduce las herramientas y técnicas fundamentales para analizar el rendimiento de sistemas Linux en producción.
Objetivos de aprendizaje
Sección titulada «Objetivos de aprendizaje»Al finalizar este capítulo serás capaz de:
- Interpretar métricas clave de CPU, memoria, disco y red.
- Utilizar herramientas de monitorización en tiempo real.
- Analizar cuellos de botella en sistemas Linux.
- Identificar patrones de degradación de rendimiento.
- Aplicar medidas correctivas basadas en datos.
Conceptos Teóricos
Sección titulada «Conceptos Teóricos»1. Métricas fundamentales del sistema
Sección titulada «1. Métricas fundamentales del sistema»Un sistema Linux se evalúa principalmente en cuatro dimensiones:
- CPU
- Memoria
- Disco (I/O)
- Red
Cada una puede convertirse en un cuello de botella.
2. CPU y Load Average
Sección titulada «2. CPU y Load Average»El load average indica el número de procesos:
- en ejecución
- esperando CPU
- en espera de I/O
Ejemplo:
uptimeload average: 0.50, 0.70, 0.65Interpretación:
- valores cercanos al número de cores → uso óptimo
- valores superiores → saturación
Load > número de CPUs → sistema sobrecargado.
3. Memoria
Sección titulada «3. Memoria»Tipos de uso:
- used → memoria utilizada
- free → memoria libre
- cached/buffer → optimización del sistema
Linux utiliza memoria libre como caché para mejorar rendimiento.
free -hMemoria “llena” no implica problema; puede ser caché.
4. Disco e I/O
Sección titulada «4. Disco e I/O»El rendimiento de disco es crítico en:
- bases de datos
- sistemas con alto logging
Métricas relevantes:
- IOPS
- latencia
- throughput
Herramientas:
iostatiotop
Métricas clave:
- throughput (Mb/s)
- errores
- paquetes perdidos
Herramientas:
ssiftopip
6. Cuellos de botella
Sección titulada «6. Cuellos de botella»Un cuello de botella ocurre cuando un recurso limita el sistema:
- CPU → procesos intensivos
- memoria → swapping
- disco → latencia alta
- red → saturación
Laboratorio Práctico
Sección titulada «Laboratorio Práctico»Escenario
Sección titulada «Escenario»Un servidor presenta lentitud en una aplicación web. Debes diagnosticar:
- uso de CPU
- consumo de memoria
- actividad de disco
Parte 1: Análisis de CPU
Sección titulada «Parte 1: Análisis de CPU»topCampos clave:
%CPU→ uso por procesoload average
Alternativa moderna:
htopParte 2: Memoria
Sección titulada «Parte 2: Memoria»free -hProfundizar:
vmstat 2 5Explicación:
si/so→ swap in/outfree→ memoria libre
Si hay uso de swap → posible problema.
Parte 3: Disco
Sección titulada «Parte 3: Disco»iostat -xz 2Campos clave:
%util→ uso del discoawait→ latencia
await alto + %util alto = cuello de botella en disco.
Parte 4: Procesos con alto I/O
Sección titulada «Parte 4: Procesos con alto I/O»iotopParte 5: Red
Sección titulada «Parte 5: Red»ss -tulnpTráfico en tiempo real:
iftopOutput esperado
Sección titulada «Output esperado»CPU(s): 80% usMem: 90% usedDisk: await 120msInterpretación:
- CPU alta
- memoria comprometida
- disco saturado
Errores Comunes y Troubleshooting
Sección titulada «Errores Comunes y Troubleshooting»1. Confundir caché con consumo real
Sección titulada «1. Confundir caché con consumo real»-Problema:*
memoria aparentemente llena.
-Solución:*
analizar available en:
free -h2. Ignorar load average
Sección titulada «2. Ignorar load average»Carga alta sin análisis.
-Solución:*
comparar con número de CPUs:
nproc3. No correlacionar métricas
Sección titulada «3. No correlacionar métricas»Analizar solo CPU o solo memoria.
-Solución:*
visión global del sistema.
4. No revisar disco
Sección titulada «4. No revisar disco»Muchos problemas reales son por I/O.
5. Uso de herramientas incorrectas
Sección titulada «5. Uso de herramientas incorrectas»Ejemplo: usar top sin entender métricas.
Buenas Prácticas (Nivel Senior)
Sección titulada «Buenas Prácticas (Nivel Senior)»1. Monitorización continua
Sección titulada «1. Monitorización continua»No depender de comandos manuales:
- Prometheus
- Grafana
2. Establecer baseline
Sección titulada «2. Establecer baseline»Conocer comportamiento normal del servidor.
3. Alertas proactivas
Sección titulada «3. Alertas proactivas»- CPU > 80%
- disco > 70% uso
4. Correlación de métricas
Sección titulada «4. Correlación de métricas»Relacionar:
- picos CPU
- aumento latencia
- carga de red
5. Uso de herramientas avanzadas
Sección titulada «5. Uso de herramientas avanzadas»sarperfdstat
6. Analizar tendencia, no instantánea
Sección titulada «6. Analizar tendencia, no instantánea»Snapshots no reflejan problemas reales.
7. Capacity planning
Sección titulada «7. Capacity planning»Planificar crecimiento:
- CPU
- RAM
- almacenamiento
8. Automatización
Sección titulada «8. Automatización»Recolectar métricas automáticamente.
9. Logging combinado
Sección titulada «9. Logging combinado»Correlacionar métricas con logs del sistema.
Resumen y Siguiente Paso
Sección titulada «Resumen y Siguiente Paso»Has aprendido a interpretar y analizar el rendimiento de sistemas Linux mediante herramientas clave para CPU, memoria, disco y red. Este conocimiento te permite diagnosticar problemas reales y actuar antes de que afecten a producción.
La monitorización puntual es solo el primer paso. En entornos profesionales se requieren sistemas centralizados y visualización avanzada.
➡️ Siguiente tema: 11.2 Monitoreo — Sistemas de monitorización centralizada (Prometheus, Grafana, alerting).
