Vai al contenuto principale
Square Cloud implementa limiti di risorse basati su container per garantire isolamento, stabilità e una distribuzione equa dell’infrastruttura tra le applicazioni.

Requisiti minimi di risorse

Ogni progetto ospitato sulla piattaforma Square Cloud ha requisiti minimi di risorse specifici per garantire prestazioni ottimali:
  • Bot: Minimo di 256 MB di RAM richiesti.
  • Siti web: Minimo di 512 MB di RAM richiesti.
  • Database cache: Minimo di 512 MB di RAM richiesti.
  • Database generali: Minimo di 1 GB di RAM richiesti.

Perché esistono i minimi di RAM?

I container hanno un overhead operativo obbligatorio: runtime del linguaggio, librerie del sistema operativo e buffer di rete. Al di sotto di 256 MB, l’OOM Killer del kernel tende a terminare i processi durante il boot o la garbage collection, rendendo l’applicazione inutilizzabile. Implicazioni tecniche:
  • Ogni container consuma 1 IPv4 dinamico e IOPS di storage NVMe
  • Le allocazioni minime prevengono la frammentazione delle risorse (effetto noisy neighbor)
  • Formula degli snapshot giornalieri: (Total RAM / 256) * 2 (approssimativa; l’allocazione esatta per piano potrebbe essere inferiore sui livelli più alti)
Dati sull’impatto: Dopo aver implementato il limite minimo di 256 MB, la stabilità delle applicazioni è aumentata drasticamente, riducendo il tasso di crash dovuti a OOM (Out of Memory) del 97,7%.

Allocazione della CPU

Risposta breve: la CPU viene allocata in base alla RAM configurata. Aumentare la RAM garantisce tipicamente più vCPU.

Regole

Piani a vCPU singola

Le applicazioni sui piani a 1 vCPU ricevono la piena capacità senza throttling.

Piani multicore (≥2 vCPU)

  • Soglia minima di prestazioni: le applicazioni con ≥512 MB di RAM ricevono almeno 2 vCPU.
  • Scalabilità proporzionale:
    • Hobby (≤2 vCPU): +1 vCPU per 512 MB di RAM
    • Standard / Pro / Enterprise: +1 vCPU per 1 GB (1024 MB) di RAM

Esempi

PianoCapacità del pianoRAM configuratavCPU allocate
Standard4 GB / 4 vCPU1 GB2 vCPU (minimo)
Standard4 GB / 4 vCPU4 GB4 vCPU (massimo)
Enterprise128 GB / 16 vCPU2 GB2 vCPU
Enterprise128 GB / 16 vCPU16 GB16 vCPU
Throttling e limiti di sicurezza Il sistema applica il limite di vCPU del piano e applica un livellamento per mantenere equa la distribuzione. L’elasticità a breve termine può concedere vCPU aggiuntive durante i picchi, ma non è garantita. Usi della CPU vietati:
  • Mining di criptovalute
  • Carichi di lavoro ML intensivi e non limitati senza autorizzazione
  • Abuso deliberato delle risorse
Le violazioni comportano lo stato LACK_OF_CPU e la sospensione immediata.

Limiti di rete

La banda scala con la RAM: +50 Mbps per ogni 256 MB di RAM.
RAM allocataBanda
256 MB50 Mbps
512 MB100 Mbps
1 GB200 Mbps
2 GB400 Mbps
4 GB800 Mbps
8 GB1600 Mbps
10 GB2000 Mbps
Per requisiti superiori a 2000 Mbps contatta il supporto.

Limiti di storage

Tutti i progetti ricevono per impostazione predefinita 10 GB di storage NVMe. Caratteristiche:
  • NVMe di livello enterprise
  • Persistente attraverso deploy e riavvii
  • IOPS e throughput elevati

Stati di superamento dei limiti

LACK_OF_RAM

Quando: l’applicazione supera la RAM allocata o il kernel segnala un OOM. Azione: il processo viene terminato immediatamente per proteggere la stabilità dell’host. Come risolvere:
  1. Individua i memory leak con i profiler (Node.js: --inspect, Python: memory_profiler).
  2. Riduci le cache in memoria o spostale su Redis.
  3. Aumenta la RAM allocata nel pannello di controllo.

LACK_OF_CPU

Quando: l’utilizzo sostenuto della CPU supera i limiti ragionevoli per l’allocazione. Azione: processo terminato con stato LACK_OF_CPU. Come risolvere:
  1. Profila gli hotspot della CPU (Node.js: 0x, Python: cProfile).
  2. Ottimizza i loop critici, le query al DB e le operazioni I/O-bound.
  3. Aumenta la RAM per ottenere più vCPU (vedi la tabella di allocazione della CPU).
  4. Delega il lavoro pesante a worker asincroni o job batch.
Compromesso: aumentare la RAM per ottenere CPU aumenta i costi. Valuta se l’ottimizzazione del codice sia più economica dello scaling up.