Ihr Tarif legt fest, wie viel Arbeitsspeicher, CPU, Speicherplatz und wie viele Prozesse Ihr Projekt nutzen darf. Alle Container eines Projekts teilen sich diese Ressourcen. Die Grenzen sind fest: Es entstehen keine Zusatzkosten, wenn eine Grenze erreicht wird - aber Ihre Anwendungen merken es. Wie stark, hängt von der Ressource ab.
Arbeitsspeicher (RAM)
Nähert sich das Projekt der Grenze, gibt der Server zuerst zwischengespeicherte Dateien frei. Ab etwa 90 % der Grenze bremst er Ihre Container, damit Speicher frei wird - Anwendungen werden spürbar langsamer.
Ist der Arbeitsspeicher voll, beendet der Server einen Prozess im Projekt, meist den mit dem größten Bedarf. Der betroffene Container startet je nach Neustart-Einstellung neu. Für Ihre Anwendung bedeutet das:
- laufende Anfragen brechen ab, Besucher sehen kurz einen Fehler,
- eine Datenbank kann nicht gespeicherte Vorgänge verlieren,
- geschieht es wiederholt, gerät der Container in eine Neustart-Schleife.
Die Übersicht des Projekts zeigt einen Hinweis, wenn Prozesse wegen Speichermangels beendet wurden. Haben Sie einem Container eine eigene RAM-Grenze gegeben, trifft es nur diesen Container - so schützen Sie wichtige Dienste wie die Datenbank vor einem Container, der zu viel Speicher belegt.
CPU
Die CPU-Grenze nennt die Rechenleistung in Prozent eines Kerns, 200 % entsprechen zwei Kernen. An der Grenze bremst der Server Ihre Container gleichmäßig aus. Es stürzt nichts ab, aber alles dauert länger: Seiten laden langsam, und bei längeren Anfragen kann die Web-Adresse mit einer Zeitüberschreitung antworten.
Speicherplatz
Zum Speicherplatz zählen Volumes, Images, Snapshots und die Logs Ihrer Container. Ist er voll, scheitert jeder Schreibvorgang - das ist die heikelste Grenze:
- Datenbanken können keine Daten mehr schreiben, brechen ab oder starten nicht mehr. Im schlimmsten Fall werden Daten beschädigt.
- Uploads, Sitzungen und Zwischenspeicher der Anwendung scheitern.
- Neue Images oder Versionen lassen sich nicht mehr laden.
Wichtig: Snapshots halten gelöschte Daten fest. Löschen Sie Dateien, wird der Platz erst frei, wenn auch die Snapshots gelöscht sind, die diese Dateien enthalten (Backup und Snapshot).
Prozesse
Die Zahl gleichzeitiger Prozesse ist je Projekt begrenzt. An der Grenze können Anwendungen keine neuen Prozesse oder Verbindungen mehr starten, etwa Worker eines Webservers. In den Logs steht dann meist „Resource temporarily unavailable“.
Was wir nicht tun
Wir löschen keine Daten und buchen keine Ressourcen automatisch hinzu. Ihr Projekt wird beim Erreichen einer Grenze nicht gesperrt. Ob Sie aufräumen, Grenzen je Container setzen oder mehr Ressourcen buchen, entscheiden Sie.
Rechtzeitig gewarnt werden
Im Reiter Monitoring unter Benachrichtigungen legen Sie fest, ab welcher Auslastung wir Sie per E-Mail warnen. Sie wählen bis zu vier Schwellen zwischen 50 und 95 %, zum Beispiel 50, 80 und 95 %. Jede Schwelle melden wir einmal, sobald sie mindestens 5 Minuten erreicht ist - für Arbeitsspeicher, CPU, Speicherplatz und Prozesse. Sinkt die Auslastung wieder, melden wir erst die nächsthöhere Schwelle erneut (Monitoring).
Für Projekte mit Datenbanken empfehlen wir eine frühe erste Schwelle, etwa 70 % beim Speicherplatz: Bis zu einer vollen Platte bleibt dann Zeit zum Aufräumen.
Sie können die Ressourcen-Warnungen auch abschalten. Dann erfahren Sie von einem Engpass erst, wenn Anwendungen langsam werden oder ausfallen - wir raten davon ab.
Was hilft
- Mehr Ressourcen buchen - ein größerer Tarif oder zusätzlicher Arbeitsspeicher, zusätzliche CPU oder zusätzlicher Speicher wirken sofort, ohne Neustart der Container (Tarif und Optionen).
- Grenzen je Container - geben Sie speicherhungrigen Containern eine eigene RAM- oder CPU-Grenze in den Einstellungen des Containers.
- Anwendung einstellen - viele Datenbanken und Caches nutzen so viel Speicher, wie sie bekommen. Begrenzen Sie ihn in der Anwendung, etwa den Puffer einer Datenbank.
- Aufräumen - alte Snapshots, nicht mehr genutzte Volumes und große Dateien löschen (Datenträger und Dateibrowser). Container-Logs löschen wir selbst nach 7 Tagen, höchstens 20 MB je Container.
- Ursache suchen - die Statistiken im Reiter Monitoring zeigen, welcher Container wie viel braucht, die Logs zeigen Fehler (Fehler finden und beheben).