Zum Hauptinhalt springen
Square Cloud implementiert containerbasierte Ressourcenlimits, um Isolation, Stabilität und eine faire Verteilung der Infrastruktur über alle Anwendungen hinweg zu gewährleisten.

Mindestanforderungen an Ressourcen

Jedes auf der Square Cloud-Plattform gehostete Projekt hat spezifische Mindestanforderungen an Ressourcen, um eine optimale Leistung sicherzustellen:
  • Bots: Mindestens 256 MB RAM erforderlich.
  • Websites: Mindestens 512 MB RAM erforderlich.
  • Cache-Datenbanken: Mindestens 512 MB RAM erforderlich.
  • Allgemeine Datenbanken: Mindestens 1 GB RAM erforderlich.

Warum gibt es RAM-Mindestwerte?

Container haben einen zwingenden betrieblichen Overhead: die Sprach-Runtime, OS-Bibliotheken und Netzwerkpuffer. Unterhalb von 256 MB neigt der OOM Killer des Kernels dazu, Prozesse während des Boots oder der Garbage Collection zu beenden, was die Anwendung unbrauchbar macht. Technische Auswirkungen:
  • Jeder Container verbraucht 1 dynamische IPv4 und NVMe-Storage-IOPS
  • Mindestzuweisungen verhindern Ressourcenfragmentierung (Noisy-Neighbor-Effekt)
  • Formel für tägliche Snapshots: (Total RAM / 256) * 2 (Näherungswert; das genaue Kontingent pro Plan kann in höheren Stufen niedriger sein)
Auswirkungsdaten: Nach Einführung des 256-MB-Mindestlimits stieg die Anwendungsstabilität drastisch und die Absturzrate aufgrund von OOM (Out of Memory) sank um 97,7 %.

CPU-Zuweisung

Kurz gesagt: Die CPU wird auf Basis des konfigurierten RAM zugewiesen. Mehr RAM gewährt in der Regel mehr vCPUs.

Regeln

Pläne mit einer einzelnen vCPU

Anwendungen auf Plänen mit 1 vCPU erhalten die volle Kapazität ohne Throttling.

Multicore-Pläne (≥2 vCPU)

  • Leistungsuntergrenze: Anwendungen mit ≥512 MB RAM erhalten mindestens 2 vCPUs.
  • Proportionale Skalierung:
    • Hobby (≤2 vCPU): +1 vCPU pro 512 MB RAM
    • Standard / Pro / Enterprise: +1 vCPU pro 1 GB (1024 MB) RAM

Beispiele

PlanPlan-KapazitätKonfigurierter RAMZugewiesene vCPUs
Standard4 GB / 4 vCPU1 GB2 vCPUs (Untergrenze)
Standard4 GB / 4 vCPU4 GB4 vCPUs (max)
Enterprise128 GB / 16 vCPU2 GB2 vCPUs
Enterprise128 GB / 16 vCPU16 GB16 vCPUs
Throttling und Sicherheitslimits Das System erzwingt das vCPU-Limit des Plans und wendet Leveling an, um die Verteilung fair zu halten. Kurzfristige Elastizität kann während Lastspitzen zusätzliche vCPUs gewähren, ist jedoch nicht garantiert. Verbotene CPU-Nutzungen:
  • Kryptowährungs-Mining
  • Uneingeschränkte, intensive ML-Workloads ohne Autorisierung
  • Vorsätzlicher Ressourcenmissbrauch
Verstöße führen zum Status LACK_OF_CPU und zur sofortigen Sperrung.

Netzwerklimits

Die Bandbreite skaliert mit dem RAM: +50 Mbps pro 256 MB RAM.
Zugewiesener RAMBandbreite
256 MB50 Mbps
512 MB100 Mbps
1 GB200 Mbps
2 GB400 Mbps
4 GB800 Mbps
8 GB1600 Mbps
10 GB2000 Mbps
Für Anforderungen über 2000 Mbps wende dich an den Support.

Speicherlimits

Alle Projekte erhalten standardmäßig 10 GB NVMe-Speicher. Eigenschaften:
  • NVMe der Enterprise-Klasse
  • Persistent über Deploys und Neustarts hinweg
  • Hohe IOPS und hoher Durchsatz

Status bei Überschreitung von Limits

LACK_OF_RAM

Wann: Die Anwendung überschreitet den zugewiesenen RAM oder der Kernel signalisiert OOM. Aktion: Der Prozess wird sofort beendet, um die Host-Stabilität zu schützen. Behebung:
  1. Finde Speicherlecks mit Profilern (Node.js: --inspect, Python: memory_profiler).
  2. Reduziere In-Memory-Caches oder verlagere Caches nach Redis.
  3. Erhöhe den zugewiesenen RAM im Control Panel.

LACK_OF_CPU

Wann: Die anhaltende CPU-Auslastung überschreitet die für die Zuweisung angemessenen Limits. Aktion: Der Prozess wird mit dem Status LACK_OF_CPU beendet. Behebung:
  1. Profiliere CPU-Hotspots (Node.js: 0x, Python: cProfile).
  2. Optimiere heiße Schleifen, DB-Abfragen und I/O-gebundene Operationen.
  3. Erhöhe den RAM, um mehr vCPUs zu erhalten (siehe Tabelle zur CPU-Zuweisung).
  4. Lagere schwere Arbeit an asynchrone Worker oder Batch-Jobs aus.
Abwägung: Den RAM zu erhöhen, um CPU zu gewinnen, steigert die Kosten. Prüfe, ob eine Code-Optimierung günstiger ist als das Hochskalieren.