0%
Guía de resolución de problemas en servidores Linux lentos: un enfoque metódico

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.

I

InSkillCoach

· min

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 top y 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

  1. Para los procesos anómalos:

    # Arrêter le processus problématique
    kill -15 PID
    
    # En cas de non-réponse
    kill -9 PID
  2. 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

  1. Revisar los logs de la aplicación:

    tail -f /var/log/application.log
  2. Utilizar strace para analizar las llamadas al sistema:

    strace -p PID
  3. 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

  1. Swap elevado:

    • Aumentar la RAM física
    • Identificar los procesos que consumen demasiada memoria
  2. 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

  1. Supervisión proactiva

    • Configurar alertas para:
      • Uso de CPU > 80 %
      • Memoria disponible < 20 %
      • Swap utilizado > 50 %
  2. Documentación

    • Mantener un historial de incidentes
    • Anotar las soluciones aplicadas
    • Documentar los umbrales normales
  3. 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:

  1. Identificar los síntomas concretos
  2. Utilizar las herramientas apropiadas
  3. Analizar las métricas
  4. Aplicar las correcciones
  5. 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.

InSkillCoach

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+
582
220

Comentarios

Los comentarios funcionan con GitHub Discussions

Inicia sesión con GitHub para participar en la discusión

¡Enlace copiado!