Hosting Equipo Avantys 8 min

Diagnóstico de Problemas en VPS: Guía Completa

Aprende a diagnosticar problemas en tu VPS. CPU, RAM, disco, red, procesos bloqueados y herramientas esenciales para troubleshooting.

// Compartir

Diagnóstico de Problemas en VPS: Guía Completa
Diagnóstico de problemas en VPS

Tu VPS va lento. O peor: no responde. ¿Por dónde empezar? El diagnóstico sistemático es la diferencia entre resolver el problema en minutos o pasarte horas dando palos de ciego.

Esta guía te enseña el proceso paso a paso para identificar y resolver los problemas más comunes en servidores Linux.

El proceso de diagnóstico

Flujo de diagnóstico en VPS

Metodología sistemática

1. ¿Cuál es el síntoma exacto?

2. ¿Desde cuándo ocurre?

3. ¿Qué cambió antes del problema?

4. Verificar recursos (CPU, RAM, disco, red)

5. Revisar logs

6. Identificar causa raíz

7. Aplicar solución

8. Verificar que funciona

Preguntas clave

PreguntaPor qué importa
¿Qué síntoma exacto?”Va lento” no es útil, “tarda 10s en cargar” sí
¿Desde cuándo?Delimita el problema
¿Qué cambió?Actualización, nuevo código, más tráfico
¿Afecta a todo o solo algo?Ayuda a aislar el componente

Herramientas esenciales

Herramientas de diagnóstico VPS

Vista rápida del sistema

# Estado general en un vistazo
htop

htop muestra:

  • CPU por core
  • RAM usada/disponible
  • Procesos ordenados por uso
  • Load average

Comandos básicos

ComandoQué muestra
htopVista general interactiva
topProcesos (viene instalado)
free -hMemoria RAM
df -hEspacio en disco
iostatI/O de disco
netstat -tlnpPuertos y conexiones
ss -sResumen de sockets
dmesg -TMensajes del kernel

Instalar herramientas

sudo apt install -y htop iotop iftop nethogs sysstat

Diagnóstico de CPU

Síntomas de problema de CPU

  • Servidor muy lento
  • Comandos tardan en ejecutar
  • Load average alto

Verificar uso de CPU

# Load average
uptime
# Salida: load average: 2.50, 2.30, 2.10
# Los 3 números = últimos 1, 5, 15 minutos
# Regla: si > número de cores = sobrecargado
# Ver cores disponibles
nproc
# Si tienes 2 cores y load > 2.0 = problema
# Qué proceso consume más
top -o %CPU
# o
ps aux --sort=-%cpu | head -10

Causas comunes

CausaSolución
Proceso desbocadoKill o reiniciar servicio
Ataque/spamFirewall, fail2ban
Código ineficienteOptimizar aplicación
Falta de recursosEscalar VPS

Soluciones

# Identificar proceso problemático
top -o %CPU

# Matar proceso específico
kill -9 PID

# Reiniciar servicio
sudo systemctl restart nginx

# Limitar CPU de un proceso (temporal)
cpulimit -p PID -l 50

Diagnóstico de RAM

Síntomas de problema de memoria

  • OOM Killer mata procesos
  • Swap muy usado
  • Aplicaciones crashean

Verificar memoria

# Resumen de memoria
free -h
              total        used        free      shared  buff/cache   available
Mem:          3.8Gi       2.1Gi       200Mi       50Mi       1.5Gi       1.4Gi
Swap:         2.0Gi       500Mi       1.5Gi

Importante: available es lo que realmente puedes usar (free + buff/cache liberables).

# Procesos ordenados por memoria
ps aux --sort=-%mem | head -10

# Memoria por proceso
smem -tk

Causas comunes

CausaSolución
Memory leakReiniciar aplicación, actualizar
Demasiados procesosReducir workers
Falta de RAMEscalar o añadir swap
Caché mal configuradaAjustar límites

Soluciones

# Ver qué OOM killer mató
dmesg | grep -i "killed process"

# Limpiar caché (temporal, no recomendado habitualmente)
sync; echo 3 > /proc/sys/vm/drop_caches

# Añadir swap si no tienes
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Diagnóstico de disco

Síntomas de problema de disco

  • “No space left on device”
  • Escrituras muy lentas
  • Aplicaciones no pueden guardar datos

Verificar espacio

# Uso por partición
df -h

# Qué directorio ocupa más
du -sh /* 2>/dev/null | sort -hr | head -10

# Archivos más grandes
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null

Verificar I/O

# I/O en tiempo real
iotop

# Estadísticas de disco
iostat -x 1 5

Métricas clave:

  • %util > 80% = disco saturado
  • await > 10ms = latencia alta

Causas comunes

CausaSolución
Logs enormesRotar logs, limpiar antiguos
Backups acumuladosEliminar backups viejos
Archivos temporalesLimpiar /tmp
Base de datos grandeOptimizar, archivar

Soluciones

# Limpiar logs antiguos
sudo journalctl --vacuum-time=7d

# Limpiar apt cache
sudo apt clean

# Encontrar y eliminar logs grandes
find /var/log -name "*.log" -size +100M

# Rotar logs manualmente
sudo logrotate -f /etc/logrotate.conf

Diagnóstico de red

Síntomas de problema de red

  • Conexiones lentas
  • Timeouts
  • No se puede conectar

Verificar conectividad

# ¿Hay internet?
ping -c 3 8.8.8.8

# ¿DNS funciona?
ping -c 3 google.com

# ¿Puerto específico accesible?
nc -zv tudominio.com 443

Verificar puertos y conexiones

# Puertos escuchando
ss -tlnp

# Conexiones activas
ss -s

# Conexiones por estado
netstat -an | awk '/^tcp/ {print $6}' | sort | uniq -c | sort -rn

Verificar ancho de banda

# Tráfico en tiempo real
iftop -i eth0

# Tráfico por proceso
nethogs eth0

# Estadísticas de interfaz
ip -s link show eth0

Causas comunes

CausaSolución
Firewall bloqueandoRevisar ufw/iptables
Servicio no corriendoIniciar servicio
Puerto incorrectoVerificar configuración
Demasiadas conexionesOptimizar, escalar
DDoSCloudflare, mitigación

Soluciones

# Verificar firewall
sudo ufw status verbose

# Abrir puerto
sudo ufw allow 80/tcp

# Verificar si servicio escucha
sudo lsof -i :80

# Reiniciar servicio
sudo systemctl restart nginx

Diagnóstico de servicios

Verificar estado de servicios

# Estado de un servicio
sudo systemctl status nginx

# Ver servicios fallidos
sudo systemctl --failed

# Logs de un servicio
sudo journalctl -u nginx -n 50 --no-pager

# Logs en tiempo real
sudo journalctl -u nginx -f

Servicios comunes y sus logs

ServicioComando statusLogs
Nginxsystemctl status nginx/var/log/nginx/error.log
Apachesystemctl status apache2/var/log/apache2/error.log
MySQLsystemctl status mysql/var/log/mysql/error.log
PHP-FPMsystemctl status php8.2-fpm/var/log/php8.2-fpm.log

Soluciones

# Reiniciar servicio
sudo systemctl restart nginx

# Recargar configuración (sin downtime)
sudo systemctl reload nginx

# Ver por qué falló
sudo journalctl -u nginx -n 100

# Verificar configuración antes de reiniciar
sudo nginx -t

Revisar logs del sistema

Logs principales

# Logs del sistema
sudo tail -100 /var/log/syslog

# Logs de autenticación
sudo tail -100 /var/log/auth.log

# Mensajes del kernel
dmesg -T | tail -50

# Todos los logs recientes
sudo journalctl -p err -n 50

Buscar errores específicos

# Errores en logs
grep -i error /var/log/syslog | tail -20

# OOM kills
dmesg | grep -i "killed process"

# Errores de disco
dmesg | grep -i "error\|fail"

# Intentos de login fallidos
grep "Failed password" /var/log/auth.log | tail -20

Checklist de diagnóstico rápido

Cuando el servidor va lento

# 1. Vista general
htop

# 2. Load average
uptime

# 3. Memoria
free -h

# 4. Disco
df -h

# 5. Procesos problemáticos
ps aux --sort=-%cpu | head -5
ps aux --sort=-%mem | head -5

Cuando no responde un servicio

# 1. ¿Está corriendo?
sudo systemctl status servicio

# 2. ¿Puerto abierto?
ss -tlnp | grep PUERTO

# 3. ¿Firewall bloquea?
sudo ufw status

# 4. ¿Logs dicen algo?
sudo journalctl -u servicio -n 50

Cuando no puedes conectar por SSH

  1. Prueba desde otro dispositivo
  2. Usa consola VNC del proveedor
  3. Verifica que sshd está corriendo
  4. Revisa firewall
  5. Comprueba fail2ban no te bloqueó

Script de diagnóstico automático

#!/bin/bash
# /root/scripts/diagnostico.sh

echo "=========================================="
echo "DIAGNÓSTICO RÁPIDO DEL VPS"
echo "Fecha: $(date)"
echo "=========================================="

echo ""
echo "=== SISTEMA ==="
echo "Hostname: $(hostname)"
echo "Uptime: $(uptime -p)"
echo "Load: $(uptime | awk -F'load average:' '{print $2}')"

echo ""
echo "=== CPU ==="
echo "Cores: $(nproc)"
echo "Uso actual:"
mpstat 1 1 | tail -1

echo ""
echo "=== MEMORIA ==="
free -h

echo ""
echo "=== DISCO ==="
df -h | grep -E '^/dev/'

echo ""
echo "=== TOP 5 PROCESOS (CPU) ==="
ps aux --sort=-%cpu | head -6

echo ""
echo "=== TOP 5 PROCESOS (RAM) ==="
ps aux --sort=-%mem | head -6

echo ""
echo "=== SERVICIOS FALLIDOS ==="
systemctl --failed --no-pager

echo ""
echo "=== PUERTOS ESCUCHANDO ==="
ss -tlnp | grep LISTEN

echo ""
echo "=== ÚLTIMOS ERRORES ==="
journalctl -p err -n 10 --no-pager

echo ""
echo "=========================================="
echo "Diagnóstico completado"
echo "=========================================="
chmod +x /root/scripts/diagnostico.sh
./diagnostico.sh

Preguntas frecuentes

¿Qué es el load average y cuándo es problemático?

Load average indica cuántos procesos esperan CPU. Si es mayor que el número de cores de forma sostenida, hay problema. Con 2 cores, load > 2.0 sostenido es preocupante.

¿Por qué free muestra poca memoria libre pero el servidor funciona bien?

Linux usa RAM libre para caché de disco. Mira 'available', no 'free'. Si available es bajo, entonces sí tienes problema de memoria.

¿Cómo sé si el problema es del VPS o de mi aplicación?

Si los recursos del sistema están bien (CPU < 80%, RAM available > 20%, disco < 90%), el problema probablemente está en tu aplicación o configuración.

¿Qué hago si no puedo conectar por SSH?

Usa la consola VNC/web de tu proveedor de VPS. Desde ahí puedes verificar si sshd está corriendo, si el firewall bloquea, o si fail2ban te baneó.

¿Cada cuánto debo revisar el estado del VPS?

Idealmente con monitorización automática (Netdata, alertas). Manualmente, una revisión semanal rápida es buena práctica.

Nuestra recomendación

Para diagnóstico rápido:

  • htop para vista general
  • Script de diagnóstico automático
  • Alertas automáticas con Netdata

Para problemas persistentes:

  • Revisa logs sistemáticamente
  • Identifica el componente afectado
  • Busca qué cambió antes del problema

¿Problemas que no puedes resolver? La administración gestionada de Avantys incluye monitorización proactiva y resolución de incidencias 24/7.


Conclusión

El diagnóstico sistemático es una habilidad que se desarrolla con práctica. Empieza siempre por los recursos básicos (CPU, RAM, disco, red) y ve profundizando según los síntomas.

El 80% de los problemas se resuelven con los comandos básicos de esta guía.

¿Necesitas un VPS fiable con soporte? Explora los VPS de Avantys con monitorización y soporte incluidos.


¿Quieres que lo hagamos por ti?

En Avantys gestionamos tu web, hosting y crecimiento digital de punta a punta. Tú a lo importante.

Hablar con Avantys
// Boletín

Suscríbete al boletín

Guías nuevas, sin spam. Cancela cuando quieras.