Comparativa

Dimensionar un VPS para el sitio de un cliente: RAM y CPU

Comparativas10 min de lectura8 pasos

Elegir un VPS a ciegas equivale a facturar un margen muerto o a sufrir una caída en el primer pico. Esta guía muestra cómo leer el consumo real de RAM, CPU y disco de un sitio cliente con herramientas presentes en todas partes, quedándose con el pico y no con la media. De ahí deduce una regla de cálculo explícita, reconoce las señales de infradimensionamiento antes que el cliente y sitúa el plan que conviene. La primera elección no es definitiva, porque un VPS se redimensiona.

Contenido· Por qué medir antes de elegir un plan1/12
  1. 01Por qué medir antes de elegir un plan
  2. 02Lo que le aporta medir
  3. 03Requisitos: qué preparar antes de medir
  4. 04Leer el consumo real, paso a paso
  5. 05Qué domina la carga según el tipo de sitio
  6. 06Medir el pico, no la media
  7. 07Una regla de cálculo sencilla, presentada como hipótesis
  8. 08Escribir el margen en el presupuesto
  9. 09Reconocer un VPS infradimensionado antes que el cliente
  10. 10Las señales, con su mensaje exacto
  11. 11Lo que más RAM no resuelve
  12. 12Elegir el plan y escalar

Por qué medir antes de elegir un plan

Un cliente pregunta "¿qué VPS necesita mi sitio?" y la respuesta, demasiadas veces, es una intuición. De ahí salen dos errores. El primero es contratar el plan superior "por precaución": en una cartera de veinte clientes, ese margen muerto se paga cada mes y se come el margen de la agencia. El segundo es quedarse corto: el primer pico de tráfico, una copia de seguridad o una importación de catálogo tumba el sitio, y el cliente se entera antes que usted.

La objeción habitual es "no hay tiempo para medir". Sin embargo, la medición cabe en una hora de observación activa, con herramientas que ya están en cualquier distribución Linux. Y la primera elección no es definitiva: un VPS se redimensiona en vertical, es decir, se pasa a un plan mayor sin reconstruir la arquitectura. Lo importante no es acertar a la primera, sino elegir con cifras y un margen escrito que pueda defender ante el cliente.

El razonamiento vale también para el profesional que gestiona su propio sitio, por ejemplo una tienda en línea: el coste de un plan demasiado grande se ve en la factura mensual, el de uno demasiado ajustado en las ventas perdidas durante un pico de pedidos. Las mismas lecturas permiten entonces decidir con conocimiento de causa, sin intermediarios.

Esta guía trata la medición previa a la compra y la elección del plan. Para decidir entre VPS y alojamiento compartido, lea antes VPS o alojamiento compartido para un sitio cliente. Para la alerta continua una vez el VPS está en producción, vea alertas de disco y RAM en un VPS.

Lo que le aporta medir

  • Un presupuesto defendible — dimensiona el plan con lecturas fechadas, no con una impresión.
  • Sin margen muerto — deja de facturar o absorber un plan sobredimensionado en cada cliente.
  • Menos caídas en el primer pico — ve venir la saturación de la memoria antes de que mate un proceso.
  • Una base de comparación — la lectura de hoy permite juzgar el crecimiento dentro de seis meses.
  • Un diagnóstico honesto — distingue el sitio que le faltan recursos del que está mal configurado.
  • Una migración más tranquila — llega al nuevo VPS con un plan ya probado con la carga real.

Requisitos: qué preparar antes de medir

La medición se hace en el servidor actual del cliente, el que soporta la carga real, y no en una copia vacía. Necesita acceso SSH de lectura, permisos para ejecutar ps, free y df y, si es posible, poder instalar el paquete sysstat, que aporta sar y conserva un historial de la carga.

En cuanto a la duración, cuente con al menos una semana de historial si sysstat ya está activo; si no, una ventana de observación de al menos una hora que incluya a propósito un momento cargado: un pico de tráfico conocido, la copia nocturna, una tarea programada o una importación. Medir un martes a las 3 de la madrugada no dice nada del día de rebajas. Anote por último el contexto: aplicación (WordPress, tienda, aplicación a medida), presencia de contenedores, base de datos en la misma máquina o no.

Leer el consumo real, paso a paso

  1. Contar los núcleos

    Ejecute nproc. Este número es la referencia para leer la carga: un load average de 4 es sano con 8 vCPU y crítico con 2.

  2. Leer la memoria por la columna correcta

    Ejecute free -h y mire la columna available, no free. Linux llena a propósito la memoria libre con caché de disco, recuperable bajo demanda: free siempre parece baja, mientras que available indica lo que queda realmente para nuevas aplicaciones sin recurrir al swap.

  3. Observar CPU, memoria y entradas-salidas

    Ejecute vmstat 1 10. Vigile si y so (intercambios con el swap, que deben quedar a cero), wa (espera de entradas-salidas) y r (procesos esperando CPU).

  4. Leer la carga media

    Ejecute uptime. Los tres valores son las medias a 1, 5 y 15 minutos. Compárelos con nproc: una carga duraderamente superior al número de núcleos indica espera.

  5. Identificar los grandes consumidores

    Ejecute ps aux --sort=-%mem | head -15. Con contenedores, añada docker stats --no-stream; con systemd, systemd-cgtop clasifica los servicios por consumo.

  6. Medir el disco y los inodos

    Ejecute df -h para el espacio y df -i para los inodos. Un disco puede rechazar escrituras aunque quede espacio en bytes, si los inodos están agotados. Anote también el tamaño de las carpetas que crecen: medios, base de datos, registros, copias locales.

  7. Registrar un historial con sar

    Instale sysstat, active la recogida según su distribución y relea la memoria con sar -r, la CPU con sar -u y la carga con sar -q. Sin historial, muestree usted mismo: vmstat 60 120 produce una lectura por minuto durante dos horas.

  8. Anotar los valores máximos

    Pase a una tabla el pico de memoria usada, el pico de carga y el crecimiento del disco. Esa tabla, y no la media, sirve para calcular el plan.

Qué domina la carga según el tipo de sitio

Desplace la tabla

Tipo de sitioRecurso que se satura primeroQué hay que anotar
Sitio corporativo o WordPress con poco tráficoMemoria, por PHP y la base de datos`free -h` en el pico, RAM por proceso PHP
Tienda en líneaMemoria y CPU en los picos de pedidosCarga durante una promoción, número de procesos PHP simultáneos
Aplicación de negocio con base de datosEntradas-salidas de disco y memoria`wa` en `vmstat`, tamaño de la base, consultas lentas
Sitio de medios o catálogo de imágenesDisco y ancho de banda`df -h`, crecimiento mensual de la carpeta de medios
Sitio con importación o tarea programada pesadaCPU y memoria puntualesCarga y memoria durante la tarea, duración de la tarea
Aplicación en contenedoresMemoria acumulada de los contenedores`docker stats --no-stream`, límites de memoria declarados

Medir el pico, no la media

Un servidor que muestra un 25 % de CPU de media en 24 horas puede estar saturado diez minutos cada noche. La media borra justo lo que tumba un sitio. Para dimensionar, conserve el valor máximo observado en la ventana y compruebe que incluye el peor momento conocido: pico de tráfico, copia de seguridad, cron pesado, importación.

Si el cliente no sabe cuándo están sus picos, cruce los datos con los registros de acceso del servidor web y con las fechas de campañas de correo o promociones. Una semana de historial sar cubre un ciclo completo, fin de semana incluido. Cuando el sitio ya va lento, una lectura tomada durante la lentitud vale más que diez lecturas en calma.

Una regla de cálculo sencilla, presentada como hipótesis

La regla siguiente es editorial, no una norma ni una promesa del catálogo: memoria necesaria = consumo en el pico, más un margen del 30 %. La cifra del 30 % es la hipótesis de este artículo; cubre el crecimiento a corto plazo y los picos que su ventana no vio. Para el disco, cuente el espacio usado, más el crecimiento previsto a seis meses, más al menos un 20 % libre.

Para un sitio con PHP-FPM, calcule la memoria de los procesos en vez de leerla globalmente: memoria PHP = RAM medida por proceso multiplicada por pm.max_children. Mida la RAM por proceso con ps -eo rss,args | awk '/[p]hp-fpm: pool/ {s+=$1; n++} END {print s/n/1024 " MB"}'. El resultado sobreestima un poco, porque parte de la memoria se comparte entre procesos.

Ejemplo numérico ficticio: 600 MB para el sistema, el servidor web y la base de datos, más 20 procesos de 60 MB, es decir 1.200 MB, dan 1.800 MB en el pico. Con un 30 % de margen hacen falta unos 2,4 GB: se elige el plan cuya RAM sea inmediatamente superior.

Escribir el margen en el presupuesto

Anote en el presupuesto el pico medido, el margen elegido y la fecha de la lectura. Cuando el cliente pregunte por qué este plan y no el siguiente, la respuesta está escrita. Repita la lectura cada seis meses: un sitio que crece cambia de plan antes de caerse, no después.

Reconocer un VPS infradimensionado antes que el cliente

Con el sitio ya en producción, unas pocas señales indican que el plan se queda corto. Cada una deja un rastro preciso que puede buscar sin esperar la queja del cliente.

Las señales, con su mensaje exacto

  • Proceso eliminado por falta de memoria — busque con journalctl -k | grep -i "out of memory" o dmesg -T | grep -i "killed process" una línea del tipo Out of memory: Killed process. El kernel sacrificó un proceso, a menudo la base de datos.
  • Swap activo — si y so distintos de cero en vmstat 1: el servidor intercambia memoria con el disco y todo se ralentiza.
  • Espera de entradas-salidas alta — wa duraderamente alto en top: el disco o la base de datos frena, a veces por falta de caché en memoria.
  • Carga superior al número de núcleos — un load average duraderamente por encima de nproc significa que hay procesos esperando su turno.
  • PHP-FPM saturado — la línea server reached pm.max_children setting (N), consider raising it en el registro de errores indica que todos los procesos están ocupados y las peticiones esperan.
  • Errores 502 y 504 en nginx — respuestas 502 o 504, junto con upstream timed out (110: Connection timed out), suelen acompañar la saturación de PHP-FPM.
  • Disco lleno o inodos agotados — df -h y df -i se acercan al 100 % y las escrituras fallan.

Lo que más RAM no resuelve

Antes de subir de plan, compruebe que el problema es realmente de recursos. Una consulta SQL lenta satura la CPU sea cual sea el plan: el índice que falta se corrige, no se compensa. La ausencia de caché de objetos obliga a PHP a recalcular las mismas páginas en cada visita. Una imagen de 8 MB servida tal cual consume ancho de banda y tiempo de proceso. Y subir pm.max_children sin subir la RAM provoca exactamente la muerte por el kernel que quería evitar.

El enfoque sano es corregir primero esos puntos, repetir la lectura y dimensionar con el resultado. Así evita facturar al cliente un plan mayor que solo oculta un defecto de configuración.

Elegir el plan y escalar

Con la necesidad cifrada, compárela con la gama. El plan VPS Start ofrece 2 vCPU, 4 GB de RAM y 50 GB SSD de almacenamiento; el plan VPS Power ofrece 4 vCPU, 8 GB y 100 GB SSD; el plan VPS Business ofrece 8 vCPU, 16 GB y 200 GB SSD. Precio de entrada de la gama: 99 DH/mes.

Elija el plan más pequeño que cubra su necesidad con el margen escrito y deje que la escalabilidad vertical haga el resto: si la siguiente lectura muestra que el margen se agota, pasa al plan superior sin cambiar de arquitectura. Para no esperar a esa lectura, configure alertas continuas y, para saber si el sitio responde desde fuera, una sonda de disponibilidad: vea el seguimiento de disponibilidad de los sitios cliente.

Un plan VPS que sigue a la medición

Dominios, alojamientos y VPS se gestionan en una misma plataforma, ServOrbit.com, con planes VPS que se redimensionan en vertical cuando la medición lo justifica.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva