Manuel Killert
Ratgeber · TYPO3 · Server

Arbeitsspeicher erschöpft — mehr hilft, aber nicht immer.

„Allowed memory size exhausted“ ist eine der häufigsten Meldungen bei TYPO3 — und eine der missverständlichsten. Manchmal ist das Limit wirklich zu niedrig. Oft verbraucht etwas unnötig viel, und dann verschiebt mehr Speicher das Problem nur.

Referenzen ansehen →Projekt anfragen
Kurz gesagt

Das Limit gilt je Aufruf und wird an mehreren Stellen gesetzt: in der Serverkonfiguration, über eigene Einstellungen und getrennt für Webserver und Kommandozeile. Letzteres überrascht regelmäßig — ein Befehl bricht ab, obwohl die Website läuft. Bevor du erhöhst, lohnt die Frage, warum so viel gebraucht wird: Bei Bildverarbeitung und Upgrades ist viel normal, bei einem einfachen Seitenaufruf nicht.

Wann die Meldung auftritt.

SituationNormalbedarfVerdächtig ab
Normaler Seitenaufruf aus dem Cachegeringjeder Fehler ist verdächtig
Seitenaufruf ohne Cachemittelanhaltend hoher Verbrauch
Backend, Seitenbaum, Listenmittel bis hochAbbruch bei normaler Arbeit
Bildverarbeitung großer Dateienhochnormal, Limit anheben
Upgrade und Datenmigrationsehr hochnormal, einmalig anheben
Composersehr hochnormal, für den Aufruf anheben

Die Unterscheidung ist wichtig: Ein Abbruch beim Upgrade ist ein Limit-Problem. Ein Abbruch beim Aufruf einer normalen Seite ist ein Hinweis darauf, dass etwas falsch läuft — eine Extension, eine Endlosschleife, eine Abfrage, die zu viele Datensätze lädt.

Wo das Limit gesetzt wird.

Es gibt mehrere Ebenen, und die restriktivste gewinnt. Ganz oben steht die Serverkonfiguration, die der Hoster vorgibt. Darunter können eigene Einstellungen greifen — je nach Hosting über eine eigene Konfigurationsdatei oder über den Kundenbereich. TYPO3 selbst setzt zusätzlich einen eigenen Wert für bestimmte Vorgänge.

Was du selbst ändern kannst, hängt vom Hosting ab. Bei vielen Anbietern lässt sich der Wert im Kundenbereich einstellen — das ist der sauberste Weg. Eigene Konfigurationsdateien im Projektverzeichnis funktionieren je nach Serverkonfiguration oder werden ignoriert.

Webserver gegen Kommandozeile.

Der Punkt, der die meiste Verwirrung stiftet. Beide haben getrennte Limits, und die Kommandozeile hat oft ein niedrigeres — obwohl dort die speicherhungrigsten Vorgänge laufen: Composer, Upgrade-Schritte, Importe.

Prüfen lässt sich das mit einer Abfrage der aktuellen Werte auf beiden Wegen. Und ändern lässt es sich für einzelne Aufrufe direkt beim Befehl, ohne die Serverkonfiguration anzufassen — das ist für einmalige Vorgänge der praktischste Weg:

Limit für einen einzelnen Befehl aufheben
php -d memory_limit=-1 vendor/bin/typo3 upgrade:run

# Aktuellen Wert prüfen
php -i | grep memory_limit

Der Wert minus eins hebt die Begrenzung für diesen Aufruf auf. Das ist für Wartungsvorgänge in Ordnung, sollte aber nicht dauerhaft in Skripten stehen.

Welche Werte sinnvoll sind.

Als Orientierung für eine typische Installation: Für den Webserver sind Werte im Bereich von einigen hundert Megabyte üblich — deutlich mehr als bei einfacheren Systemen, weil das TYPO3-Backend anspruchsvoll ist. Für die Kommandozeile darf es großzügiger sein, weil dort einmalige Vorgänge laufen und niemand parallel darauf wartet.

Wichtig ist die Gegenrechnung: Das Limit gilt je gleichzeitigem Aufruf. Ein sehr hoher Wert bei vielen gleichzeitigen Besuchern kann den Server an seine Grenze bringen. Deshalb nicht pauschal maximieren, sondern so viel wie nötig — und bei anhaltend hohem Bedarf die Ursache suchen statt die Grenze zu verschieben.

Erhöhen.

  1. Kundenbereich des Hosters prüfen — dort lässt es sich meist direkt einstellen.
  2. Für einzelne Befehle den Wert beim Aufruf mitgeben.
  3. Für den Webserver über die vom Hoster vorgesehene Konfigurationsdatei.
  4. Prüfen, ob die Änderung greift — im Install-Tool unter der Umgebungsübersicht.
  5. Nach einmaligen Vorgängen überlegen, ob der hohe Wert dauerhaft nötig ist.

Schritt vier wird oft übersprungen: Nicht jede eingetragene Einstellung wird auch übernommen. Die Umgebungsübersicht zeigt den tatsächlich wirksamen Wert — das ist die einzige verlässliche Prüfung (Hosting-Anforderungen).

Ursachen jenseits des Limits.

  • Sehr große Bilder werden hochgeladen und verarbeitet — ein Foto direkt aus der Kamera braucht beim Zuschneiden ein Vielfaches seiner Dateigröße (Bildverarbeitung).
  • Listen ohne Begrenzung: Eine Ausgabe, die tausende Datensätze lädt, statt zu blättern.
  • Extension mit Schleife, die Objekte sammelt statt sie zu verarbeiten.
  • Riesiger Seitenbaum im Backend, besonders mit vielen Sprachen.
  • Protokolltabellen, die bei jedem Backend-Aufruf abgefragt werden (Datenbank aufräumen).
  • Debug-Ausgaben, die versehentlich aktiv geblieben sind.

Wann mehr Speicher nicht hilft.

Wenn der Verbrauch mit der Datenmenge wächst, verschiebt ein höheres Limit das Problem nur. Typisch: Eine Liste lädt alle Datensätze; heute sind es fünftausend und es geht gerade so, in einem Jahr sind es zehntausend und es geht nicht mehr. Hier hilft nur, die Verarbeitung zu ändern — blättern statt alles laden, in Paketen arbeiten, Abfragen eingrenzen.

Ebenfalls kein Limit-Problem: eine Endlosschleife. Die füllt jeden Speicher, egal wie groß. Wenn ein Vorgang immer kurz vor dem Limit abbricht, egal welchen Wert man setzt, ist das der Verdacht.

Verbrauch messen.

Statt zu raten, lohnt die Messung. Die Admin-Leiste im Frontend zeigt bei eingeschalteter Anzeige unter anderem den Speicherverbrauch je Seitenaufruf. Damit lässt sich vergleichen: Was braucht eine einfache Seite, was eine komplexe, was das Backend?

Ein deutlicher Ausreißer auf einer bestimmten Seite zeigt, wo zu suchen ist. Und wenn alle Seiten gleichmäßig viel brauchen, ist es keine einzelne Stelle, sondern die Grundlast — dann lohnt der Blick auf die installierten Extensions (TYPO3 langsam).

Wenn der Hoster begrenzt.

Bei günstigen Paketen ist das Limit teils fest und nicht anhebbar. Dann hast du drei Möglichkeiten: den Bedarf senken, was bei Bildverarbeitung über kleinere Uploads geht; einmalige Vorgänge auf einem anderen Weg ausführen, etwa lokal vorbereiten; oder das Hosting wechseln.

Für eine ernsthaft betriebene TYPO3-Installation ist der letzte Weg oft der richtige. TYPO3 ist anspruchsvoller als die meisten Systeme, und ein Paket, das ständig an Grenzen stößt, erzeugt dauerhaft Aufwand, der teurer ist als der Aufpreis für ein geeignetes Hosting.

Wenn du nicht weiterkommst.

Wenn Vorgänge mit Speicherfehlern abbrechen, messe ich den Verbrauch und sage dir, ob das Limit oder die Ursache das Problem ist. Schreib mir mit Domain, TYPO3-Version und einer kurzen Beschreibung — du bekommst eine ehrliche Einschätzung, ob ich der Richtige bin. Den Überblick über alle Themen gibt TYPO3-Fehler beheben. Wenn sich am Ende herausstellt, dass ein Wechsel die bessere Lösung ist: TYPO3 zu WordPress.

Fehleranalyse & Erste Hilfeab ~150 €

Ursache finden, Website wieder zum Laufen bringen, kurzer Bericht — meist am selben Tag.

Stundensatz~95 €

Für Anpassungen, Fehlerbehebung und Beratung nach Aufwand, abgerechnet in 15-Minuten-Schritten.

Wartungab ~49 €/Monat

Updates, Backups, Sicherheitscheck, Monitoring — Kleinigkeiten inklusive.

Orientierungswerte, keine Fixpreise — nach einem kurzen Gespräch bekommst du ein Festpreisangebot.

Wer hilft.

Ich bin Manuel Killert, Web-Entwickler aus Quakenbrück. Mein Schwerpunkt liegt auf WordPress — an TYPO3-Installationen arbeite ich dort, wo es um Betrieb und Fehlersuche geht: Ausfälle, Serverthemen, Datenbank, Mailversand, Updates und die Frage, wie es mit einer alten Installation weitergehen soll. Das sind die Probleme, bei denen die Ursache meist nicht im System selbst liegt, sondern darunter. Geht es um tiefe Entwicklung in TYPO3 — eigene Extensions, komplexe Mehrsprachigkeit, große Redaktionssysteme —, sage ich dir das offen und empfehle jemanden, der genau das macht. Ehrlich beraten heißt für mich auch, eine Anfrage abzugeben.

Häufige Fragen

FAQ — Speicherlimit.

Was bedeutet „Allowed memory size exhausted“ in TYPO3?

Ein Vorgang hat mehr Arbeitsspeicher gebraucht, als für diesen Aufruf erlaubt ist. Bei Upgrades und Bildverarbeitung ist hoher Bedarf normal, bei einem einfachen Seitenaufruf ein Hinweis auf ein Problem.

Warum bricht ein Befehl ab, obwohl die Website läuft?

Weil Webserver und Kommandozeile getrennte Limits haben und die Kommandozeile oft das niedrigere hat — obwohl dort die speicherhungrigsten Vorgänge laufen.

Wie erhöhe ich das Limit für einen einzelnen Befehl?

Indem der Wert beim Aufruf mitgegeben wird. Das hebt die Grenze nur für diesen Vorgang auf und ändert nichts an der Serverkonfiguration.

Wie prüfe ich, ob die Änderung wirkt?

Im Install-Tool unter der Umgebungsübersicht steht der tatsächlich wirksame Wert. Nicht jede eingetragene Einstellung wird auch übernommen.

Wann hilft mehr Speicher nicht?

Wenn der Verbrauch mit der Datenmenge wächst — dann wird die Grenze irgendwann wieder erreicht. Und bei Endlosschleifen, die jeden Speicher füllen, egal wie groß.

Was tun, wenn der Hoster das Limit festlegt?

Bedarf senken, einmalige Vorgänge anders ausführen oder das Hosting wechseln. Bei TYPO3 ist Letzteres oft der richtige Weg, weil das System anspruchsvoller ist als die meisten.

Manuel Killert (rechts im Bild) mit einem FreundDas bin ich – rechts im Bild
Kontakt

Erzähl mir, was an deinem TYPO3 klemmt.

Beschreib kurz das Problem und nenn mir die TYPO3-Version — du bekommst eine ehrliche Einschätzung, woran es liegt und was es kostet.

Antwort meist innerhalb von 24 Stunden · hallo@manuelkillert.de