Passer au contenu principal
Square Cloud met en œuvre des limites de ressources basées sur les conteneurs afin de garantir l’isolation, la stabilité et une répartition équitable de l’infrastructure entre les applications.

Exigences minimales de ressources

Chaque projet hébergé sur la plateforme Square Cloud a des exigences minimales de ressources spécifiques pour garantir des performances optimales :
  • Bots : Minimum de 256 Mo de RAM requis.
  • Sites web : Minimum de 512 Mo de RAM requis.
  • Bases de données de cache : Minimum de 512 Mo de RAM requis.
  • Bases de données générales : Minimum de 1 Go de RAM requis.

Pourquoi des minimums de RAM existent-ils ?

Les conteneurs ont une surcharge opérationnelle obligatoire : runtime du langage, bibliothèques de l’OS et tampons réseau. En dessous de 256 Mo, l’OOM Killer du noyau a tendance à interrompre les processus au démarrage ou pendant le ramasse-miettes, rendant l’application inviable. Implications techniques :
  • Chaque conteneur consomme 1 IPv4 dynamique et des IOPS de stockage NVMe
  • Les allocations minimales évitent la fragmentation des ressources (effet « noisy neighbor »)
  • Formule des snapshots quotidiens : (Total RAM / 256) * 2 (approximatif ; le quota exact par plan peut être inférieur sur les niveaux supérieurs)
Données d’impact : Après la mise en place de la limite minimale de 256 Mo, la stabilité des applications a considérablement augmenté, réduisant le taux de crash dû à l’OOM (Out of Memory) de 97,7 %.

Allocation CPU

Réponse courte : le CPU est alloué en fonction de la RAM configurée. Augmenter la RAM accorde généralement davantage de vCPU.

Règles

Plans à vCPU unique

Les applications sur les plans à 1 vCPU reçoivent la pleine capacité sans throttling.

Plans multicœurs (≥2 vCPU)

  • Plancher de performance : les applications avec ≥512 Mo de RAM reçoivent au moins 2 vCPU.
  • Mise à l’échelle proportionnelle :
    • Hobby (≤2 vCPU) : +1 vCPU par 512 Mo de RAM
    • Standard / Pro / Enterprise : +1 vCPU par 1 Go (1024 Mo) de RAM

Exemples

PlanCapacité du planRAM configuréevCPU alloués
Standard4 Go / 4 vCPU1 Go2 vCPU (plancher)
Standard4 Go / 4 vCPU4 Go4 vCPU (max)
Enterprise128 Go / 16 vCPU2 Go2 vCPU
Enterprise128 Go / 16 vCPU16 Go16 vCPU
Throttling et limites de sécurité Le système applique la limite de vCPU du plan et procède à un nivellement pour maintenir une répartition équitable. Une élasticité à court terme peut accorder des vCPU supplémentaires lors des pics, mais elle n’est pas garantie. Utilisations CPU interdites :
  • Minage de cryptomonnaies
  • Charges de travail ML intensives et non restreintes sans autorisation
  • Abus délibéré des ressources
Les infractions entraînent le statut LACK_OF_CPU et une suspension immédiate.

Limites réseau

La bande passante évolue avec la RAM : +50 Mbps par 256 Mo de RAM.
RAM allouéeBande passante
256 Mo50 Mbps
512 Mo100 Mbps
1 Go200 Mbps
2 Go400 Mbps
4 Go800 Mbps
8 Go1600 Mbps
10 Go2000 Mbps
Pour des besoins supérieurs à 2000 Mbps, contactez le support.

Limites de stockage

Tous les projets reçoivent 10 Go de stockage NVMe par défaut. Caractéristiques :
  • NVMe de qualité entreprise
  • Persistant à travers les déploiements et les redémarrages
  • IOPS et débit élevés

Statuts de dépassement de limite

LACK_OF_RAM

Quand : l’application dépasse la RAM allouée ou le noyau signale un OOM. Action : le processus est interrompu immédiatement pour protéger la stabilité de l’hôte. Comment corriger :
  1. Identifiez les fuites de mémoire avec des profilers (Node.js : --inspect, Python : memory_profiler).
  2. Réduisez les caches en mémoire ou déplacez-les vers Redis.
  3. Augmentez la RAM allouée dans le panneau de contrôle.

LACK_OF_CPU

Quand : une utilisation CPU soutenue dépasse les limites raisonnables pour l’allocation. Action : le processus est interrompu avec le statut LACK_OF_CPU. Comment corriger :
  1. Profilez les points chauds CPU (Node.js : 0x, Python : cProfile).
  2. Optimisez les boucles chaudes, les requêtes en base de données et les opérations liées aux I/O.
  3. Augmentez la RAM pour obtenir davantage de vCPU (voir le tableau d’allocation CPU).
  4. Déchargez le travail lourd vers des workers asynchrones ou des jobs par lots.
Compromis : augmenter la RAM pour gagner du CPU augmente les coûts. Évaluez si l’optimisation du code est moins coûteuse que la montée en charge.