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
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
LACK_OF_CPU gestoppt.
Netzwerklimits
Jede Anwendung erhält dedizierte Bandbreite, gleich für Upload und Download, die proportional zum zugewiesenen RAM skaliert: +50 Mbps pro 256 MB. Sie ist für deinen Container reserviert, wird nie mit Nachbarn geteilt, und der Traffic wird weder gemessen noch berechnet. Einige Beispiele:
Für dauerhaft traffic-intensive Workloads kann der Support einen dedizierten Cluster einrichten.
Start-Turbo. Jeder Start erhält einen Schub weit über der Bandbreite des Plans: Abhängigkeiten installieren, Modelle herunterladen oder Caches neu aufbauen geht schnell, unabhängig von deiner Zuweisung.
Datenbanken haben ihre eigene dedizierte Bandbreite, in beide Richtungen, passend zu ihrem RAM.
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
Wenn eine Anwendung ihre Ressourcen überschreitet, stoppt Square Cloud sie, schreibt eine Zeile[SQUARE-SHIELD] mit dem Grund in ihre Logs und schickt dir eine E-Mail. Diese Tabelle ist die Referenz, auf die die anderen Seiten verweisen; die Lösungen stehen darunter.
Das Hilfe-Center erklärt die Warn-E-Mails unter Ausfallwarnungen: RAM, CPU und Sperren von Anfragen.
LACK_OF_RAM
Die Anwendung hat ihren zugewiesenen RAM erreicht, deshalb wurde der Prozess gestoppt, um den Host zu schützen. Behebung:- Finde Speicherlecks mit einem Profiler (Node.js:
--inspect, Python:memory_profiler). Siehe Speicherlecks in Node.js. - Reduziere In-Memory-Caches oder verlagere sie nach Redis.
- Erhöhe den RAM der Anwendung im Dashboard oder setze
MEMORYin der Konfigurationsdatei höher.
LACK_OF_CPU
Die Anwendung hat über längere Zeit alle ihre vCPUs ausgelastet, deshalb wurde der Prozess gestoppt. Behebung:- Profiliere CPU-Hotspots (Node.js:
0x, Python:cProfile). Siehe CPU bei 100 %: Tipps zur Optimierung. - Optimiere heiße Schleifen, Datenbankabfragen und I/O-gebundene Operationen.
- Erhöhe den RAM, um mehr vCPUs zu erhalten (siehe CPU-Zuweisung).
- Verlagere schwere Arbeit in asynchrone Worker oder Batch-Jobs.
CONTAINER_TEMPORARILY_SUSPENDED
Die Logs zeigten[SQUARE-SHIELD] ABUSE_REQUESTS: Die Anwendung hat über längere Zeit Anfragen in missbräuchlicher Rate an Discord oder an squareweb.app-Websites gesendet. Fast immer steckt eine Endlosschleife, ein Wiederholungsversuch ohne Pause oder ein fehlender Cache dahinter, keine echte Beliebtheit. Die Anwendung wurde gestoppt, und bis die Sperre endet, schlägt ein Start mit CONTAINER_TEMPORARILY_SUSPENDED fehl.
Behebung:
- Lies die E-Mail und die letzten Logs, um den Code zu finden, der die Anfragen sendet.
- Cache, was du abrufst, baue eine Pause zwischen Wiederholungsversuchen ein und beachte die Rate-Limit-Header der API, die du aufrufst. Siehe Rate-Limits der Discord-API.
- Warte einen Moment und starte die Anwendung erneut.

