Skip to main content
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

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
Estos usos infringen la política contra abuso, minería de cripto y spam. Aparte de eso, una aplicación que mantiene todas sus vCPUs ocupadas se detiene con LACK_OF_CPU.

Límites de red

Cada aplicación cuenta con ancho de banda dedicado, igual para subida y descarga, que escala proporcionalmente a la RAM asignada: +50 Mbps por cada 256 MB. Está reservado para tu contenedor, nunca se comparte con vecinos, y el tráfico nunca se mide ni se cobra. Algunos ejemplos: Para cargas sostenidas de alto tráfico, soporte puede configurar un clúster dedicado. Turbo de arranque. Cada arranque recibe un impulso muy por encima del ancho de banda del plan: instalar dependencias, descargar modelos o reconstruir cachés es rápido, sea cual sea tu asignación. Las bases de datos tienen su propio ancho de banda dedicado, en ambas direcciones, dimensionado según su RAM.

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

Cuando una aplicación supera sus recursos, Square Cloud la detiene, escribe en sus logs una línea [SQUARE-SHIELD] con el motivo y te envía un correo. Esta tabla es la referencia a la que enlazan las demás páginas; las soluciones están debajo. El centro de ayuda explica los correos de alerta en alerta de caída: bloqueos por RAM, CPU y peticiones.

LACK_OF_RAM

La aplicación alcanzó la RAM asignada, así que el proceso se detuvo para proteger el host. Cómo solucionarlo:
  1. Encuentra fugas de memoria con un profiler (Node.js: --inspect, Python: memory_profiler). Consulta fugas de memoria en Node.js.
  2. Reduce las cachés en memoria o muévelas a Redis.
  3. Aumenta la RAM de la aplicación en el dashboard, o sube MEMORY en el archivo de configuración.

LACK_OF_CPU

La aplicación usó todas sus vCPUs durante un periodo prolongado, así que el proceso se detuvo. Cómo solucionarlo:
  1. Perfila los puntos calientes de CPU (Node.js: 0x, Python: cProfile). Consulta CPU al 100%: consejos de optimización.
  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 asignación de CPU).
  4. Mueve 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.

CONTAINER_TEMPORARILY_SUSPENDED

Los logs mostraron [SQUARE-SHIELD] ABUSE_REQUESTS: la aplicación envió solicitudes a Discord o a sitios squareweb.app a un ritmo abusivo durante un periodo prolongado. Casi siempre se trata de un bucle infinito, un reintento sin espera o una caché que falta, no de popularidad real. La aplicación se detuvo y, hasta que termine el bloqueo, al iniciarla falla con CONTAINER_TEMPORARILY_SUSPENDED. Cómo solucionarlo:
  1. Lee el correo y los últimos logs para encontrar el código que envía las solicitudes.
  2. Guarda en caché lo que consultas, agrega una espera entre reintentos y respeta los encabezados de rate limit de la API que llamas. Consulta rate limits de la API de Discord.
  3. Espera un momento y vuelve a iniciar la aplicación.