Saltar al contenido principal
Square Cloud implementa límites de recursos basados en contenedores para garantizar el aislamiento, la estabilidad y una distribución justa de la infraestructura entre las aplicaciones.

Requisitos mínimos de recursos

Cada proyecto alojado en la plataforma de Square Cloud tiene requisitos mínimos de recursos específicos para garantizar un rendimiento óptimo:
  • Bots: Se requiere un mínimo de 256 MB de RAM.
  • Sitios web: Se requiere un mínimo de 512 MB de RAM.
  • Bases de datos de caché: Se requiere un mínimo de 512 MB de RAM.
  • Bases de datos generales: Se requiere un mínimo de 1 GB de RAM.

¿Por qué existen los mínimos de RAM?

Los contenedores tienen una sobrecarga operativa obligatoria: el runtime del lenguaje, las bibliotecas del sistema operativo y los búferes de red. Por debajo de 256 MB, el OOM Killer del kernel tiende a terminar procesos durante el arranque o la recolección de basura, lo que hace inviable la aplicación. Implicaciones técnicas:
  • Cada contenedor consume 1 IPv4 dinámica y IOPS de almacenamiento NVMe
  • Las asignaciones mínimas evitan la fragmentación de recursos (efecto de vecino ruidoso)
  • Fórmula de snapshots diarios: (Total RAM / 256) * 2 (aproximada; la asignación exacta por plan puede ser menor en los niveles superiores)
Datos de impacto: Tras implementar el límite mínimo de 256 MB, la estabilidad de las aplicaciones aumentó drásticamente, reduciendo la tasa de fallos por OOM (Out of Memory) en un 97,7%.

Asignación de CPU

Respuesta corta: la CPU se asigna en función de la RAM configurada. Aumentar la RAM normalmente otorga más vCPUs.

Reglas

Planes de una sola vCPU

Las aplicaciones en planes de 1 vCPU reciben capacidad completa sin throttling.

Planes multinúcleo (≥2 vCPU)

  • Piso de rendimiento: las aplicaciones con ≥512 MB de RAM reciben al menos 2 vCPUs.
  • Escalado proporcional:
    • Hobby (≤2 vCPU): +1 vCPU por cada 512 MB de RAM
    • Standard / Pro / Enterprise: +1 vCPU por cada 1 GB (1024 MB) de RAM

Ejemplos

PlanCapacidad del planRAM configuradavCPUs asignadas
Standard4 GB / 4 vCPU1 GB2 vCPUs (piso)
Standard4 GB / 4 vCPU4 GB4 vCPUs (máx)
Enterprise128 GB / 16 vCPU2 GB2 vCPUs
Enterprise128 GB / 16 vCPU16 GB16 vCPUs
Throttling y límites de seguridad El sistema aplica el límite de vCPU del plan y realiza un nivelado para mantener una distribución justa. La elasticidad a corto plazo puede otorgar vCPUs adicionales durante picos, pero no está garantizada. Usos prohibidos de la CPU:
  • Minería de criptomonedas
  • Cargas de trabajo de ML intensivas y sin restricciones sin autorización
  • Abuso deliberado de recursos
Las infracciones resultan en el estado LACK_OF_CPU y suspensión inmediata.

Límites de red

El ancho de banda escala con la RAM: +50 Mbps por cada 256 MB de RAM.
RAM asignadaAncho de banda
256 MB50 Mbps
512 MB100 Mbps
1 GB200 Mbps
2 GB400 Mbps
4 GB800 Mbps
8 GB1600 Mbps
10 GB2000 Mbps
Para requisitos superiores a 2000 Mbps contacta con soporte.

Límites de almacenamiento

Todos los proyectos reciben 10 GB de almacenamiento NVMe de forma predeterminada. Características:
  • NVMe de nivel empresarial
  • Persistente a través de despliegues y reinicios
  • Alto IOPS y rendimiento

Estados de límite excedido

LACK_OF_RAM

Cuándo: la aplicación excede la RAM asignada o el kernel señala OOM. Acción: el proceso se termina de inmediato para proteger la estabilidad del host. Cómo solucionarlo:
  1. Encuentra fugas de memoria con profilers (Node.js: --inspect, Python: memory_profiler).
  2. Reduce las cachés en memoria o mueve las cachés a Redis.
  3. Aumenta la RAM asignada en el panel de control.

LACK_OF_CPU

Cuándo: el uso sostenido de CPU excede los límites razonables para la asignación. Acción: el proceso se termina con el estado LACK_OF_CPU. Cómo solucionarlo:
  1. Perfila los puntos calientes de CPU (Node.js: 0x, Python: cProfile).
  2. Optimiza los bucles calientes, las consultas a la base de datos y las operaciones limitadas por I/O.
  3. Aumenta la RAM para obtener más vCPUs (consulta la tabla de asignación de CPU).
  4. Descarga el trabajo pesado a workers asíncronos o trabajos por lotes.
Contrapartida: aumentar la RAM para ganar CPU incrementa los costes. Evalúa si optimizar el código es más barato que escalar.