Hosting Equipo Avantys 7 min

Escalar tu VPS: Cuándo y Cómo Hacerlo

Aprende a identificar cuándo tu VPS necesita más recursos. Escalado vertical vs horizontal, métricas clave y guía paso a paso.

// Compartir

Escalar tu VPS: Cuándo y Cómo Hacerlo
Escalar VPS - cuándo y cómo

Tu VPS va cada vez más lento. Los usuarios se quejan. ¿Es momento de escalar? ¿O hay algo que puedes optimizar primero?

Esta guía te enseña a identificar cuándo realmente necesitas más recursos y cómo escalar de forma eficiente.

Señales de que necesitas escalar

Métricas para escalar VPS

Métricas críticas

MétricaUmbral de alertaUmbral crítico
CPU> 70% sostenido> 90% sostenido
RAM> 80% usada> 95% usada
Disco> 80% lleno> 90% lleno
Load Average> nº cores> 2x nº cores
Tiempo respuesta> 500ms> 2s

Verificar estado actual

# Vista rápida
htop

# CPU y Load
uptime
# load average: 1.50, 1.30, 1.20
# Si tienes 2 cores y load > 2 = problema

# Memoria
free -h
# Mira "available", no "free"

# Disco
df -h

# Tiempo de respuesta web
curl -o /dev/null -s -w "Tiempo: %{time_total}s\n" https://tudominio.com

Señales claras de que debes escalar

SeñalSignifica
OOM Killer matando procesosRAM insuficiente
Load average > 2x cores constantementeCPU insuficiente
Disco al 90%+Almacenamiento insuficiente
Errores 502/503 frecuentesRecursos agotados
Tiempo de respuesta > 2sNecesitas optimizar o escalar

Antes de escalar: ¿Has optimizado?

Checklist de optimización

☐ Caché de aplicación habilitado (Redis, Memcached)
☐ Caché de página (Varnish, Nginx FastCGI)
☐ Base de datos optimizada (índices, queries)
☐ Imágenes optimizadas y en CDN
☐ Compresión gzip/brotli activa
☐ Procesos innecesarios desactivados
☐ Logs rotados y limitados
☐ Código optimizado

Optimizaciones que equivalen a escalar

OptimizaciónEquivale a
Añadir Redis+30-50% menos carga BD
CDN para estáticos-50% ancho de banda
Caché de página-80% carga de servidor
Optimizar queries+50% capacidad BD
PHP OPcache+30% rendimiento PHP

Regla: Optimiza primero. Escala cuando las optimizaciones no son suficientes.

Tipos de escalado

Tipos de escalado VPS

Escalado vertical (Scale Up)

Añadir más recursos al mismo servidor:

VPS 2GB RAM, 2 cores

VPS 4GB RAM, 4 cores

VPS 8GB RAM, 6 cores

Ventajas:

  • Simple, no requiere cambios de arquitectura
  • Sin downtime en muchos proveedores
  • Mismo IP, misma configuración

Desventajas:

  • Tiene límites (no puedes escalar infinitamente)
  • Punto único de fallo
  • Puede ser caro en niveles altos

Escalado horizontal (Scale Out)

Añadir más servidores:

        ┌─────────────────┐
        │  Load Balancer  │
        └────────┬────────┘

    ┌────────────┼────────────┐
    │            │            │
┌───▼───┐   ┌────▼───┐   ┌────▼───┐
│ VPS 1 │   │ VPS 2  │   │ VPS 3  │
│ (App) │   │ (App)  │   │ (App)  │
└───────┘   └────────┘   └────────┘

Ventajas:

  • Escalabilidad casi ilimitada
  • Alta disponibilidad (si uno cae, otros siguen)
  • Mejor para picos de tráfico

Desventajas:

  • Más complejo de configurar
  • Requiere cambios de arquitectura
  • Gestión de sesiones, BD compartida

¿Cuál elegir?

SituaciónRecomendación
Web pequeña/mediana creciendoVertical
Picos de tráfico predeciblesVertical + CDN
SaaS con muchos usuariosHorizontal
Alta disponibilidad críticaHorizontal
Presupuesto limitadoVertical
Primer escaladoSiempre vertical

Escalado vertical: Guía paso a paso

1. Identificar qué recurso escalar

# ¿CPU?
uptime
mpstat 1 5

# ¿RAM?
free -h
vmstat 1 5

# ¿Disco?
df -h
iostat -x 1 5

# ¿Red?
iftop

2. Elegir el nuevo plan

Recurso saturadoQué aumentar
CPU alto, RAM OKMás cores
RAM alta, CPU OKMás RAM
Ambos altosPlan superior completo
Disco llenoMás almacenamiento
I/O lentoDisco NVMe si no tienes

3. Proceso de upgrade

En Avantys/Plesk:

  1. Panel → VPS → Cambiar plan
  2. Seleccionar nuevo plan
  3. Confirmar (puede requerir reinicio)

Proceso general:

  1. Hacer backup completo antes
  2. Solicitar upgrade en panel
  3. Esperar migración (minutos a horas)
  4. Verificar que todo funciona

4. Verificar después del upgrade

# Verificar nuevos recursos
free -h
nproc
df -h

# Verificar servicios
systemctl status nginx php8.2-fpm mysql

# Test de carga
ab -n 1000 -c 50 https://tudominio.com/

Escalado horizontal: Arquitectura básica

Separar componentes

Antes (todo en un VPS):
┌─────────────────────────┐
│  Nginx + PHP + MySQL    │
│  + Redis + Files        │
└─────────────────────────┘

Después (separado):
┌──────────┐  ┌──────────┐  ┌──────────┐
│  VPS 1   │  │  VPS 2   │  │  VPS 3   │
│  Web/App │  │  MySQL   │  │  Redis   │
└──────────┘  └──────────┘  └──────────┘

Load Balancer con Nginx

# /etc/nginx/nginx.conf

upstream backend {
    least_conn;  # Envía al servidor con menos conexiones
    server 10.0.0.1:80 weight=3;
    server 10.0.0.2:80 weight=2;
    server 10.0.0.3:80 weight=1;
}

server {
    listen 80;
    server_name tudominio.com;
    
    location / {
        proxy_pass http://backend;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Sesiones compartidas con Redis

// PHP - Usar Redis para sesiones
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', 'tcp://redis-server:6379');
// Node.js - Usar Redis para sesiones
const session = require('express-session');
const RedisStore = require('connect-redis').default;
const redis = require('redis');

const redisClient = redis.createClient({ host: 'redis-server' });

app.use(session({
    store: new RedisStore({ client: redisClient }),
    secret: 'tu-secreto',
    resave: false,
    saveUninitialized: false
}));

Base de datos centralizada

# En los servidores de aplicación, conectar a BD remota
# wp-config.php
define('DB_HOST', '10.0.0.2');  # IP del servidor de BD

# O en .env
DATABASE_URL=mysql://user:[email protected]:3306/database

Cuándo escalar cada recurso

CPU

Escalar cuando:

  • Load average > nº cores sostenido
  • Procesos tardan en ejecutar
  • Compilaciones/builds lentos

Alternativas antes de escalar:

  • Optimizar código
  • Caché de resultados
  • Reducir workers PHP/Node

RAM

Escalar cuando:

  • OOM Killer mata procesos
  • Swap muy usado (> 50%)
  • available < 20% del total

Alternativas:

  • Limitar memoria por servicio
  • Reducir buffers de MySQL
  • Menos workers de PHP-FPM

Disco

Escalar cuando:

  • 80% usado

  • I/O wait alto
  • Queries de BD lentas por I/O

Alternativas:

  • Limpiar logs y caché
  • Mover archivos a CDN/S3
  • Archivar datos antiguos

Ancho de banda

Escalar cuando:

  • Transferencia limitada alcanzada
  • Velocidad de descarga lenta
  • Muchos usuarios simultáneos

Alternativas:

  • CDN para estáticos (casi siempre la mejor opción)
  • Compresión de assets
  • Lazy loading de imágenes

Escalado automático (Auto-scaling)

Cuándo considerarlo

  • Tráfico muy variable
  • Picos predecibles (Black Friday, lanzamientos)
  • SaaS con crecimiento rápido

Opciones

Cloud providers con auto-scaling:

  • AWS Auto Scaling Groups
  • Google Cloud Managed Instance Groups
  • DigitalOcean con Kubernetes

Para VPS tradicional:

  • Scripts que monitorean y alertan
  • Escalado manual pero rápido

Script de alerta para escalar

#!/bin/bash
# /root/scripts/check-scale.sh

THRESHOLD_CPU=80
THRESHOLD_RAM=85
ALERT_EMAIL="[email protected]"

# CPU
CPU_USAGE=$(top -bn1 | grep "Cpu(s)" | awk '{print $2}' | cut -d. -f1)

# RAM
RAM_USAGE=$(free | grep Mem | awk '{printf "%.0f", $3/$2 * 100}')

# Alertas
if [ $CPU_USAGE -gt $THRESHOLD_CPU ]; then
    echo "CPU al ${CPU_USAGE}%. Considerar escalar." | \
        mail -s "ALERTA: CPU alto en VPS" $ALERT_EMAIL
fi

if [ $RAM_USAGE -gt $THRESHOLD_RAM ]; then
    echo "RAM al ${RAM_USAGE}%. Considerar escalar." | \
        mail -s "ALERTA: RAM alta en VPS" $ALERT_EMAIL
fi
# Cron cada 5 minutos
*/5 * * * * /root/scripts/check-scale.sh

Costes de escalado

Comparativa típica

PlanRAMCPUPrecio aprox.
Básico2 GB1 core€5-10/mes
Medio4 GB2 cores€15-25/mes
Avanzado8 GB4 cores€40-60/mes
Pro16 GB6 cores€80-120/mes

Optimizar antes de pagar más

InversiónCosteBeneficio
Cloudflare (gratis)€0-50% tráfico
Redis (mismo VPS)€0-40% carga BD
Optimizar códigoTiempoVariable
CDN de pago€5-20/mes-70% ancho banda

Preguntas frecuentes

¿Hay downtime al escalar verticalmente?

Depende del proveedor. Algunos permiten escalar sin reinicio (hot upgrade). Otros requieren reinicio de minutos. Siempre verifica con tu proveedor antes.

¿Puedo reducir recursos después de escalar?

Generalmente sí (downgrade), pero puede ser más complicado que escalar. Algunos proveedores no lo permiten sin reinstalar. Verifica la política antes.

¿Cuánto debería escalar de una vez?

Regla general: duplica el recurso que está saturado. Si tienes 2GB RAM y está al 90%, sube a 4GB. Mejor escalar de más que quedarte corto.

¿El escalado horizontal es siempre mejor?

No. Es más complejo y costoso de gestionar. Para la mayoría de webs, escalar verticalmente es suficiente y más simple. Horizontal es para casos específicos.

¿Cómo sé si el problema es el VPS o mi código?

Si los recursos están bajos pero la web va lenta, es tu código. Si los recursos están al 90%+, necesitas optimizar o escalar. Revisa siempre ambos.

Nuestra recomendación

Antes de escalar:

  1. Verifica que el cuello de botella es recursos
  2. Optimiza (caché, CDN, código)
  3. Si sigue saturado, escala

Estrategia de escalado:

  • Empieza vertical (más simple)
  • Separa BD cuando tengas +8GB RAM
  • Horizontal solo si necesitas HA o mucha escala

¿No sabes si necesitas escalar? La administración gestionada de Avantys incluye monitorización y recomendaciones de escalado.


Conclusión

Escalar no es la primera solución, es la última después de optimizar. Pero cuando realmente necesitas más recursos, el escalado vertical es simple y efectivo para la mayoría de casos.

Monitoriza constantemente, optimiza primero, y escala cuando sea necesario.

¿Necesitas un VPS que escale fácilmente? Explora los VPS de Avantys con upgrade sin downtime.


¿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.