> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Plattform-Limits und -Einschränkungen

> Technische Spezifikationen für die RAM/CPU-Zuweisung sowie Netzwerk- und Speicherlimits auf Square Cloud.

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)

<Note>**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 %**.</Note>

## 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

| Plan       | Plan-Kapazität   | Konfigurierter RAM |     Zugewiesene vCPUs |
| ---------- | ---------------- | -----------------: | --------------------: |
| Standard   | 4 GB / 4 vCPU    |               1 GB | 2 vCPUs (Untergrenze) |
| Standard   | 4 GB / 4 vCPU    |               4 GB |         4 vCPUs (max) |
| Enterprise | 128 GB / 16 vCPU |               2 GB |               2 vCPUs |
| Enterprise | 128 GB / 16 vCPU |              16 GB |              16 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 RAM | Bandbreite |
| ---------------: | ---------: |
|           256 MB |    50 Mbps |
|           512 MB |   100 Mbps |
|             1 GB |   200 Mbps |
|             2 GB |   400 Mbps |
|             4 GB |   800 Mbps |
|             8 GB |  1600 Mbps |
|            10 GB |  2000 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.
