Skip to the content
Documentation
Help Start
Reading in:
  • German: 9,059 of 9,059 pages
About the help in other languages
All help pages

Caches leeren und vorwärmen

Welcher Cache für welche Änderung geleert wird, die Reihenfolge, die eine Änderung sichtbar macht, die Befehle (ezcache.php, exp:cache, exp:velocity), das Leeren von Caches auf ausgelasteten Websites, der Cronjob zum…

Download as PDF

Address: https://doc.exponential.earth/exphelp/viewer/help/hosting/performance/cache-clearing-and-warming.md

On this page

This page is a translation. Read the English original

Caches leeren und vorwärmen

Diese Seite ist für Systemadministratoren und Support-Mitarbeitende bei Hosting-Anbietern. Sie beantwortet: welcher Cache für welche Art von Änderung geleert wird, in welcher Reihenfolge, mit welchem Befehl, wie sich das Leeren auf einer ausgelasteten Website verhält und wie Sie eine Website danach vorwärmen, damit die ersten Besucher nicht dafür bezahlen. Die Quellen sind Caches, Kapitel 10, Abschnitt 10.6, Cache-Steuerung aus der Konsole und Caches vorladen.

Inhalt

  1. Welcher Cache für welche Änderung
  2. Die Reihenfolge nach einer Codeänderung
  3. Die Befehle
  4. Leeren auf einer ausgelasteten Website
  5. Der Cronjob zum Aufräumen
  6. Vorwärmen
  7. Wer was geleert hat
  8. Checkliste

Welcher Cache für welche Änderung

Aus Kapitel 10, Was zu leeren ist, mit php bin/php/ezcache.php:

Setup, Cache-Verwaltung: alle Caches, den Content-View-Cache, die INI- und Template-Caches oder einzelne Caches aus der Liste leeren
Setup, Cache-Verwaltung: alle Caches, den Content-View-Cache, die INI- und Template-Caches oder einzelne Caches aus der Liste leeren
Sie haben geändertLeeren
eine .ini-Einstellung--clear-tag=ini (nicht --clear-id=ini, das den globalen INI-Cache verfehlt)
eine .tpl-Datei--clear-tag=template
eine neue .tpl-Datei, eine Override-Regel, eine Erweiterung oder ein Design--clear-id=template-override,design_base
ein Stylesheet oder Skript--clear-id=ezjscore-packer,template-block, dann den Cache von Velocity
Inhalte wirken veraltet--clear-tag=content
Rollen und Richtlinien--clear-tag=user
die Definition eines Bild-Alias--clear-id=imagealias
eine Übersetzung--clear-tag=i18n
eine Wiederherstellung der Datenbank oder ein Schreiben von außerhalb von Exponential--clear-id=querycache
unsicher--clear-all (kostet danach einen langsameren ersten Aufruf jeder Seite)

Kompilierte Templates werden nicht mit ihrer Quelle verglichen, es sei denn, [TemplateSettings] DevelopmentMode=enabled, was Live- Websites aus lassen sollten. Unter Velocity starten Sie nach dem Leeren der INI-Caches neu (Worker halten Einstellungen im Speicher) und leeren nach Änderungen an Templates den Antwort-Cache.

Die Reihenfolge nach einer Codeänderung

Eine Seite, die vom alten Code zwischen dem Leeren eines Caches und dem Neuladen von PHP gerendert wird, wird erneut zwischengespeichert und sieht aus, als hätte die Änderung nicht gewirkt. Die Reihenfolge: INI- und Template-Caches, dann PHP-FPM neu laden und Velocity neu starten, und erst dann die Caches für Inhalte, HTTP, Template-Blöcke und Antworten. exp:velocity deploy tut genau das, mit PASS oder FAIL pro Schritt, auf Velocity und auf Websites nur mit Apache (--no-velocity):

#Schritt
1Autoloads der Erweiterungen (--kernel: auch Autoloads des Kernels)
2INI-Caches (--clear-tag=ini)
3Caches für Templates, Template-Overrides, Übersetzungen und design_base
4Engine-Archiv, wenn Velocity aus einem läuft
5PHP-FPM: warten, bis OPcache neu geprüft hat, oder neu laden
6Velocity neu starten, wenn er läuft
7Caches für Inhalte, exphttpcache, (mit --packer) ezjscore-packer und Template-Blöcke
8der Antwort-Cache von Velocity
9Vorwärmen: jede [DeploySettings] WarmUpURL[] wird einmal im Hintergrund angefragt

Die Schritte sind aus Engines von Velocity verdichtet.

php bin/php/console exp:velocity deploy --dry-run --allow-root-user
php bin/php/console exp:velocity deploy --allow-root-user

Die Befehle

BefehlNutzung
php bin/php/ezcache.php --clear-id=<id>[,<id>], --clear-tag=<tag>, --clear-alldas klassische Leeren eines Caches
./console exp:cache <group> [action]jede Aktion von Setup > Caches, dazu statische, HTTP-, Abfrage- und Velocity-Caches; endet mit PASS oder FAIL
./console exp:cache clear --tag=ini --dry-runwas geleert würde, mit Größen, ohne etwas zu ändern
./console exp:cache statusjede Gruppe auf einem Bildschirm
php bin/php/console exp:velocity cache clear --applyder Antwort-Cache von Velocity
php bin/php/console exp:velocity restartVelocity, nachdem sich Einstellungen geändert haben

Führen Sie sie als Benutzer der Website aus, damit das, was sie neu anlegen, für den Webserver beschreibbar bleibt; als root brauchen sie --allow-root-user. exp:cache endet mit 0, wenn erledigt, mit 1, wenn es gescheitert ist, mit 2 bei einem Bedienungsfehler, was zu Skripten passt.

Hinweis Setup > Caches (/setup/cache, Richtlinie setup/managecache) gibt dem Administrator eines Kunden dieselben Aktionen im Browser, gruppiert, mit Größen und dem Zeitpunkt, wann jeder Cache zuletzt geleert wurde. Die meisten Support-Fragen zu veralteten Seiten enden dort: Leeren Sie den Antwort-Cache von Velocity oder warten Sie einige Sekunden; ist es eine geänderte Einstellung, starten Sie Velocity neu.

Leeren auf einer ausgelasteten Website

Seit 6.0.15 benennt ein Leeren ein Cache-Verzeichnis in einem Schritt zur Seite um und löscht es von dort (Leeren von Caches, das Verzeichnisse zur Seite verschiebt): Es kehrt auch bei Hunderttausenden von Dateien schnell zurück, und nichts, was in der Zwischenzeit erzeugt wird, wird vom Löschen erfasst. Einstellungen: site.ini [FileSettings] RenameBeforeDelete=enabled und RenameExpiredCaches=enabled (beide mitgeliefert).

Der Kasten Cache leeren oben in der rechten Spalte, mit einer Liste von Caches und der Schaltfläche Leeren
Der Kasten Cache leeren oben in der rechten Spalte, mit einer Liste von Caches und der Schaltfläche Leeren

Wenn eine Änderung die View-Caches von [ContentSettings] CacheThreshold Knoten oder mehr (250) leeren würde, wird stattdessen der ganze View-Cache als abgelaufen markiert, und das Log meldet Expiring all view cache. Gelegentlich nach einem großen Verschieben ist das erwartet; bei gewöhnlichen Bearbeitungen deutet es auf Beziehungen oder viewcache.ini hin.

Der Cronjob zum Aufräumen

Das Leeren des View-Caches oder der Template-Blöcke verschiebt nur einen Zeitstempel; die Dateien bleiben also, bis der Cronjob-Teil cache_cleanup sie entfernt (Dateien nach ihrem Ablauf oder älter als cronjob.ini [CacheCleanupSettings] MaxAge, 172800 s; auch Dateien des HTTP-Caches und des Abfrage-Caches). Er läuft pro var-Verzeichnis:

php runcronjobs.php -s site cache_cleanup

Planen Sie ihn für jede Kunden-Website, sonst wächst var/. Siehe Cronjobs.

Vorwärmen

WerkzeugWas es tutWann
php bin/php/console exp:warm (bin/php/warm.php)fragt jede veröffentlichte Seite an, damit kein Besucher für ein Rendering bezahlt; --limit, --verbose, --jsonnach einem Leeren und mit einem Zeitgeber, der kürzer ist als das Cache-Fenster
php bin/php/preload.php --apply --siteaccess=<site> (Setup > Seiten vorladen)durchläuft eine Website von ihren Bereichsseiten aus bis zu einer Seitengrenze und Linktiefe, wärmt View-Cache, Bild-Aliase und kompilierte Templates vor, listet defekte Links aufnach einem Ausrollen oder einem nächtlichen Leeren; immer nur ein Lauf
[DeploySettings] WarmUpURL[]Seiten, die am Ende von exp:velocity deploy von einem Hintergrundprozess je einmal angefragt werdenimmer, für die Startseite und die Anmeldung der Administration

Beispiele aus den Quellen:

php bin/php/preload.php --siteaccess=site --dry-run
php bin/php/preload.php --apply --siteaccess=site --max-pages=20 --max-depth=1
30 4 * * * cd /path/to/exponential && php bin/php/preload.php --apply --siteaccess=site -q
*/4 * * * * cd /path/to/exponential && php bin/php/warm.php --allow-root-user >> var/log/cache-warm.log 2>&1
  • Der Preloader wärmt Dateien vor, die Apache/PHP-FPM und Velocity teilen. Der Antwort-Cache von Velocity behält eine anonyme Seite nur DefaultTtl Sekunden (30), sodass ein Vorwärmen vor den Besuchern dort nicht anhält.
  • Seiten für angemeldete Benutzer werden nicht vorgewärmt: Der Lauf ist ein anonymer Besucher.
  • Vorwärmen rendert Seiten und kostet daher CPU. Planen Sie es auf einer geteilten Maschine in ruhigen Stunden und versetzt für die Kunden.
  • Auf der Testinstallation der Quelle brauchte exp:warm kalt 9,6 s für 142 Seiten und warm 0,3 s (HTTP/2 und Vorwärmen des Caches).

Wer was geleert hat

Jedes Leeren wird im Prüfprotokoll als system.cache.clear festgehalten, über die Seite, exp:cache und bin/php/ezcache.php gleichermaßen, bei einer Shell mit dem Benutzer des Betriebssystems. Setup > Caches zeigt Benutzern, die den Systemkanal des Audits lesen dürfen, wann und von wem jeder Cache zuletzt geleert wurde (Caches, zuletzt geleert). Der Support kann daher beantworten, wer den Cache geleert hat, bevor die Website langsam wurde.

Checkliste

  • To do: Der Support hat die Tabelle „Welcher Cache für welche Änderung“.
  • To do: Ausrollen nutzt exp:velocity deploy oder dieselbe Reihenfolge von Hand.
  • To do: cache_cleanup ist für jedes var-Verzeichnis geplant.
  • To do: Eine Strategie zum Vorwärmen (Zeitgeber für exp:warm, nächtliches Vorladen, WarmUpURL[]) pro Tarif gewählt und versetzt.
  • To do: Der Abfrage-Cache wird nach jeder Wiederherstellung der Datenbank geleert.

Verwandte Seiten

Werden Sie Exponential-Partner

Partner teilen ihre Informationen, stellen Mittel bereit, geben Beiträge zurück und entwickeln die Produkte mit uns, und so wächst Exponential. Eine Partner-Website und ein Dashboard sind für Mitte 2027 geplant: Werden Sie noch heute Partner, damit wir schneller wachsen und neue Funktionen früher liefern.

Something wrong on this page? Report an error

Documentation license

This documentation is free documentation, licensed under the GNU Free Documentation License 1.3 or later.

Exponential Copyright © 1998-2026 Exponential Foundation and 7x