Guía de resolución de problemas en servidores Linux lentos: un enfoque metódico
Aprende a diagnosticar y resolver problemas de rendimiento en tus servidores Linux. Una guía paso a paso con top, vmstat y otras herramientas esenciales.
InSkillCoach
Guía de resolución de problemas en servidores Linux lentos
La lentitud de un servidor Linux puede deberse a numerosas causas. Esta guía te presenta un enfoque metódico para identificar y resolver los problemas de rendimiento, utilizando herramientas como top, vmstat y otras utilidades esenciales.
El comando top: tu primera herramienta de diagnóstico
El comando top es tu mejor aliado para empezar la investigación. Ofrece una vista en tiempo real de los procesos en ejecución y de las métricas esenciales del sistema.
Ejemplo de salida de top:
top - 12:41:43 up 52 days, 9:46, 1 user, load average: 0.92, 0.75, 0.79
Tasks: 145 total, 1 running, 144 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.5%us, 0.0%sy, 0.0%ni, 99.4%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4332028k total, 3836264k used, 495764k free, 41952k buffers
Swap: 2097148k total, 1574k used, 2081404k free, 1262632k cached
Paso 1: comprobar el I/O wait y el CPU idle time
Cómo hacerlo
- Utiliza
topy busca los valores “wa” (I/O wait) e “id” (CPU idle) - Un I/O wait elevado (>10 %) indica problemas de acceso a disco
- Un idle time bajo (<25 %) sugiere una sobrecarga de CPU
Interpretación
- I/O wait elevado: posibles problemas de disco o de red
- CPU idle bajo: aplicaciones que consumen demasiados recursos de CPU
Paso 2: analizar el uso de CPU
Si el I/O wait es bajo pero el tiempo de inactividad también lo es:
Identificar los procesos que más consumen
# Utiliser top et trier par utilisation CPU
top -o %CPU
# Pour un processus spécifique
ps -p PID -o %cpu,%mem,cmd
Soluciones posibles
-
Para los procesos anómalos:
# Arrêter le processus problématique kill -15 PID # En cas de non-réponse kill -9 PID -
Para un uso normal pero elevado:
- Aumentar los recursos del servidor
- Repartir la carga entre varios servidores
Paso 3: problemas de aplicaciones
Cuando el I/O wait es bajo y el CPU idle es alto:
Investigación
-
Revisar los logs de la aplicación:
tail -f /var/log/application.log -
Utilizar
stracepara analizar las llamadas al sistema:strace -p PID -
Examinar las conexiones de red:
lsof -i
Paso 4: análisis de la memoria y del swap
Comprobar el uso de la memoria
# Utilisation détaillée de la mémoire
free -m
# Surveillance en temps réel
vmstat 1
Cálculo de la memoria realmente disponible
Mémoire Disponible = Libre + Buffers + Cache
Ejemplo:
Libre : 495MB
Buffers : 41MB
Cache : 1262MB
Total Disponible = 1798MB
Paso 5: problemas de swap
Diagnóstico
# Voir l'utilisation du swap
free -m
# Surveillance détaillée
vmstat 1
Soluciones
-
Swap elevado:
- Aumentar la RAM física
- Identificar los procesos que consumen demasiada memoria
-
Ajustar los parámetros de swap:
# Modifier la tendance à swapper sysctl vm.swappiness=10
Paso 6: análisis de I/O con iotop
Instalación y uso
# Installation
apt install iotop # Debian/Ubuntu
yum install iotop # RHEL/CentOS
# Surveillance
iotop -o # Affiche uniquement les processus actifs
Herramientas complementarias
1. vmstat
# Surveillance toutes les secondes
vmstat 1
# Exemple de sortie
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 295388 239748 403468 0 0 0 0 100 100 0 0 100 0
2. Supervisión de los discos
# IO en temps réel
iostat -x 1
# Espace disque
df -h
Buenas prácticas de monitorización
-
Supervisión proactiva
- Configurar alertas para:
- Uso de CPU > 80 %
- Memoria disponible < 20 %
- Swap utilizado > 50 %
- Configurar alertas para:
-
Documentación
- Mantener un historial de incidentes
- Anotar las soluciones aplicadas
- Documentar los umbrales normales
-
Automatización
# Script de surveillance basique #!/bin/bash while true; do date >> /var/log/server-metrics.log top -bn1 | head -n 10 >> /var/log/server-metrics.log sleep 300 done
Resolución de problemas habituales
1. CPU elevada
- Identificar los procesos que más consumen
- Optimizar el código
- Escalado vertical u horizontal
2. Memoria insuficiente
- Aumentar la RAM
- Optimizar las aplicaciones
- Configurar el garbage collection
3. I/O lento
- Comprobar los discos (SMART)
- Optimizar las consultas a la base de datos
- Utilizar almacenamiento SSD
Conclusión
La resolución de problemas en un servidor lento requiere un enfoque metódico y el uso de las herramientas adecuadas. Los pasos clave son:
- Identificar los síntomas concretos
- Utilizar las herramientas apropiadas
- Analizar las métricas
- Aplicar las correcciones
- Verificar los resultados
Ten siempre presente que el rendimiento es un proceso continuo de optimización y mantenimiento.
Recursos adicionales
No olvides que prevenir suele ser mejor que curar. Implanta una supervisión proactiva y umbrales de alerta adecuados.
Acerca de InSkillCoach
Experto en formación y tecnologías
Coach especializado en tecnologías avanzadas e IA, impulsado por GNeurone Inc.
Certificaciones:
- AWS Certified Solutions Architect – Professional
- Certificaciones de Google Cloud
- Microsoft Certified: DevOps Engineer Expert
- Certified Kubernetes Administrator (CKA)
- CompTIA Security+
Comentarios
Los comentarios funcionan con GitHub Discussions
Inicia sesión con GitHub para participar en la discusión