Ich würde gerne wissen, ob es ein bevorzugtes Verfahren für Folgendes gibt:
- Leeren des Magento-Cache
- Aktivieren / Deaktivieren des Magento Compilers
1. Leeren des Magento Cache
Hier gibt es einige Möglichkeiten, nämlich:
- Überprüfen Sie die
Actions
Werbebuchungen und senden Sie die Aktualisierung über das Dropdown-Feld - Klicken Sie auf die
Flush Magento Cache
Schaltfläche und - Klicken Sie auf die
Flush Storage Cache
Schaltfläche
Gibt es eine bevorzugte Reihenfolge, in der diese ausgeführt werden sollen? Was ist der Unterschied zwischen dem Magento-Cache und dem Speicher-Cache?
2. Aktivieren / Deaktivieren des Magento Compilers
a) Aktivieren des Compilers
Müssen beim Aktivieren des Magento-Compilers alle Store-Caches aktiviert sein? Oder sollten Sie die Caches erst aktivieren, nachdem Sie den Compiler aktiviert und den Kompilierungsprozess ausgeführt haben? Wenn Sie den Compiler aktiviert haben, sollten Sie alle Caches aktualisieren? Und wenn ja, schließt dies das Leeren des Magento-Cache und des Speicher-Cache ein (wie oben erwähnt)
b) Deaktivieren Sie den Compiler
Sollten Sie beim Deaktivieren des Magento-Compilers zuerst alle Caches deaktivieren und nach dem Deaktivieren wieder aktivieren?
Gibt es einen Unterschied zwischen dem Belassen der Caches und dem Deaktivieren / Aktivieren des Compilers? Welche Auswirkungen auf die Leistung hat dies?
Jede Eingabe wäre sehr dankbar
Antworten:
Magento-Cache leeren - Löscht den Cache (var / cache) aller Objekte, von denen Magento weiß, dass sie erstellt wurden.
Cache leeren - Löscht alles in var / cache, unabhängig davon, wie diese Dateien dort erstellt wurden.
Wenn Sie also sicher sein möchten, dass Sie alles löschen, können Sie " Cache-Speicher leeren " auswählen, wodurch var / cache im Wesentlichen gelöscht wird.
Für den Compiler würde ich empfehlen, den Magento-Cache nach dem Aktivieren der Kompilierung und dem Ausführen des Kompilierungsprozesses zu leeren. Dies stellt sicher, dass der Cache von nicht kompilierten Daten gelöscht wird.
Wenn ich die Kompilierung deaktiviere, würde ich sie zuerst deaktivieren und anschließend den Magento-Cache leeren. Dies stellt wiederum sicher, dass der Cache frei von kompilierten Daten ist.
Sofern Sie nicht viel testen, würde ich immer empfehlen, die Caches eingeschaltet zu lassen. Die Kompilierung kann in Bezug auf die Leistung fehlerhaft sein. Ich habe gesehen, dass es die Dinge schneller macht, und oft gesehen, wie Kompilierungen die Dinge langsamer machen und Probleme mit Erweiterungen von Drittanbietern verursachen. Ich würde empfehlen, eine Baseline für die Ladezeit einer Kategorieseite (mithilfe von Firebug- / Entwicklertools) zu erstellen, bei der die Kompilierung deaktiviert und bei der Kompilierung wieder aktiviert ist, und zu prüfen, ob ein großer Unterschied besteht.
Sie sind wahrscheinlich besser dran, wenn Sie in PHP einen Opcode-Cache verwenden, MySQL-Abfragen zwischenspeichern, CSS- / JS-Dateien kombinieren, die GZIP-Komprimierung verwenden, eine Ganzseiten-Cache-Erweiterung verwenden und die richtigen Einstellungen für das Browser-Caching von Dateien vornehmen.
quelle
Magento-Cache ist nicht anders. Beginnen Sie mit den Grundlagen, um die Cache-Optionen anzuzeigen, indem Sie zu navigieren
im Backend. Sie können die verschiedenen Bereiche der Zwischenspeicherung anzeigen, die aktiviert / deaktiviert werden können, z. B. Konfigurationen, layout.xml, Blöcke, vollständige Seiten und API-Dateien. Offensichtlich ist es das Ideal, all diese zu aktivieren, sobald die Site live ist.
Der Cache kann auch von hier aus geleert oder geleert werden. Wenn Sie auf die Schaltfläche mit der Bezeichnung
“Flush Magento Cache”
klicken, werden alle Cache-Dateien geleert, die mit einem bestimmten Satz integrierter Standard-Tags übereinstimmen, die Magento verwendet. Dies ist der "sicherere" Weg, den Cache zu leeren, da nicht alles gelöscht wird. Wenn Sie einen sekundären Cache-Typ verwenden, wird durch Klicken“Flush Cache Storage”
auf sichergestellt, dass Sie den Cache geleert haben, da ALLES gelöscht wird. Die anderen beiden Schaltflächen, die Sie auf der Admin-Seite sehen, löschen Javascript, CSS und Katalogbilder.Eine alternative und etwas weniger sichere Methode zum Löschen des Caches ist das Navigieren zu
und manuelles Löschen aller Dateien. Gleiches gilt für
Wenn Sie den vollständigen Seiten-Cache aktiviert haben.
Der vollständige Seiten-Cache, der in der Enterprise Edition verfügbar ist, beschleunigt Ihre Website um das Zehnfache. Es ist jedoch wichtig, ein wenig darüber zu wissen, falls Sie feststellen, dass dynamischer Inhalt zwischengespeichert wird. Eine interessante Datei zum Anschauen ist
Hier können Sie sehen, was von der FPC zwischengespeichert wird, den Blocknamen, den Containernamen und die Sitzungslebensdauer. Wenn Sie einen dieser Blöcke unbedingt bearbeiten oder aus dem Cache entfernen müssen, können Sie ein vom PageCache-Modul abhängiges Modul erstellen und Änderungen daran vornehmen.
Das Platzhalter-Tag teilt der FPC mit, dass dieser Block als dynamisch angesehen wird. Wenn eine Seite geladen wird und sich der Block noch nicht im Cache befindet, wird nach diesem ID-Wert in den Platzhalter-Tags im Cache gesucht. Wenn er nicht vorhanden ist, wird dieser Block aufgerufen und generiert und die ID hinzugefügt der Cache.
Die Zusammenstellungsfunktion von Magento finden Sie unter
Wenn Sie eine Neuinstallation ausführen, erhalten Sie wahrscheinlich eine Systemmeldung, dass beide
includes and includes/src/
Verzeichnisse beschreibbar gemacht werden müssen. Wenn dies erledigt ist, können wir auf die Schaltfläche 'Kompilierungsprozess ausführen' klicken und Sie sind im Grunde genommen fertig, der Magento-Kern verwendet die Kompilierung.Wenn Magento seinen Quellcode kompiliert, macht das Framework ein paar Dinge. Entweder über das Admin ausgelöst wird , oder
shell, see shell/compiler.php
wird die gesamte Compilierung von einer einzigen Klasse getan:Mage_Compiler_Model_Process
. In dieser Klasse finden Sie den folgenden Ausschnitt, der den gesamten Prozess aus der Vogelperspektive zeigt.Durch den
$this->_collectFiles();
Aufruf gestartet, kopiert Magento alle PHP-Dateien von beidenund lib verzeichnisse zum
Verzeichnis. Wie Sie im folgenden Snippet sehen können: Während dieses Vorgangs durchläuft Magento rekursiv alle Dateien und Verzeichnisse. Diese Pfade werden schließlich als Dateiname verwendet. Wenn der rekursive Prozess auf eine Datei stößt, wird nach einer PHP-Erweiterung gesucht, und die gefundene Datei wird in das Compilerverzeichnis kopiert. Andere Dateitypen bleiben unberührt.
Als Beispiel: Der Pfad für die Klasse Mage_Catalog_Model_Category war
aber mit aktivierter Kompilierung ist es jetzt geworden
Controller erhalten eine andere Behandlung. Alle Controller-Verzeichnisse werden in kopiert
Sie befinden sich jedoch in einem Verzeichnis mit dem Namen des zugehörigen Namespaces. Denken Sie beispielsweise an Mage, Enterprise oder Ihren eigenen Namespace.
Innerhalb dieser Namespace-Verzeichnisse werden die Controller pro Modul gespeichert und die Controller-Verzeichnisstruktur bleibt unberührt. Das gleiche gilt für den Dateinamen, es ist nur eine exakte Kopie. All diese Logik kann in der folgenden Methode gefunden werden
$this->_copyControllers($path);
Diese zweite Kompilierungsebene sammelt alle Bereiche und ihre jeweiligen Klassenlisten vom Administrator. Alle diese Bereiche werden verarbeitet, indem der Inhalt der zugehörigen Klassendateien abgerufen und in eine einzelne Datei geschrieben wird, die nach dem angegebenen Bereich benannt ist.
Standardmäßig erstellt Magento vier verschiedene Scope-Dateien:
Während des Erstellens dieser Scope-Dateien analysiert Magento automatisch alle Klassenerweiterungen und Schnittstellen, die von den in der Scope-Liste angegebenen Klassen verwendet werden.
Nachdem alle Dateien vorhanden und kompiliert sind, ist Magento bereit, die Kompilierungsfunktion für die Verwendung zu aktivieren.
Last but not least wird die Konfiguration bezüglich der Kompilierung angepasst. Diese Datei befindet sich unter
includes/config.php
und enthält die folgenden beiden Konstanten. Nach dem Aktivieren der Kompilierung ist die Zeile bezüglich COMPILER_INCLUDE_PATH nicht kommentiert und somit einsatzbereit.Den Code, der für die Anpassung der Konfigurationsdatei verantwortlich ist, finden Sie in der Methode registerIncludePath der
Mage_Compiler_Model_Process class
.Während des Bootstraps befindet sich die Kompilierungskonfigurationsdatei in der
index.php file (around line 44)
. Dadurch stehen die include_path-Konstanten im gesamten Framework zur Verfügung. Den collect_path können Sie nur manuell aktivieren, um mehr statistische Informationen über die Verwendung Ihrer kompilierten Dateien zu erhalten. Dies sollte nicht live aktiviert werden.Ab diesem Zeitpunkt prüft Magento mit der folgenden Anweisung, ob der Kompilierungsmodus aktiviert ist. Wenn Sie die Codebasis durchgehen (mit 'grep'), werden Sie feststellen, dass der größte Teil dieser Logik in der
lib/Varien/Autoload.php
Datei enthalten ist.Der andere Ort zu suchen ist der
Mage_Core_Controller_Varien_Action
. In dieser Klasse finden Sie diepreDispatch()
Methode, die für jede Controller-Aktionsmethode ausgelöst wird, bevor die Methode tatsächlich ausgelöst wird. In diesem Teil der Quelle wird die Autoloader-Klasse Varien_Autoload von Magento aufgerufen, um eine bestimmte Compilation-Scope-Datei zu laden.Im Kompilierungsmodus hat Magento nur einen einzigen Include-Pfad, das
includes/src/
Verzeichnis, sodass jede Datei direkt beim ersten Versuch gefunden wird. Durch die große Anzahl von Dateien, die Magento zur Verfügung hat, wird viel Zeit gespart. Das darunterliegende Snippet stammt aus demWenn PHP eine Datei enthält, wird der Inhalt zu Opcode kompiliert. Dies ist ein Vorgang, der jedes Mal ausgeführt werden muss, wenn eine Datei enthalten ist. Um die Leistung Ihres Shops weiter zu verbessern, können Sie APC auf Ihrem Server installieren. APC speichert die opcodierten Versionen der Dateien im Cache und stellt sie für spätere Anforderungen zur Verfügung. Bei der nächsten Anforderung wird die Datei also aus dem APC-Cache gelesen, anstatt denselben Vorgang erneut durchführen zu müssen und Ihre Leistung zu beeinträchtigen.
quelle
COMPILER
Alle Compiler-Dateien finden Sie in
includes/
Nur nicht wischen.htaccess
oderconfig.php
. Wenn Sie anzeigen, werdenconfig.php
Sie feststellen, dass beim Aktivieren / Deaktivieren des Compilers nur die Kommentare#
vor den beiden entfernt werdendefine
. Es ist sicher anzunehmen, dass ein einfacherrm -Rf includes/src;rm -Rf includes/stat
Befehl aus dem Magento-Stammverzeichnis die kompilierten Daten löscht.Ziehen Sie auch in Betracht, AOE_ClassPathCache zusammen mit APC zu verwenden, da dies bei weitem ausreicht, um den Compiler aus der Gleichung zu entfernen.
Auch für mehr Diskussion zum Thema:
CACHES
Dies wird nur für die Caching-Backends definiert, die Sie über Ihr verwenden
local.xml
. Wenn Sie den Standard-files
Cache-Handler verwenden, löschen Sievar/cache
und wenn Enterprisevar/full_page_cache
. Wenn Sie einen Datenspeicher wie Memcache verwenden, müssen Sie dies entweder über MagentoFlush Cache Storage
oder über eine Methode tun , mit der der Cache-Datenspeicher seinen Cache leeren / löschen muss.Außerdem verwendet Magento mehr Details über die möglichen Datenspeicher Zend_Cache für seine Caching-Mechanismen. Was Sie bemerken werden, bezieht sich auf die
local.xml
Cache-Xpaths.HINWEIS
Wenn Sie Enterprise
etc/enterprise.xml
ausführen , finden Sie eine zweite Konfigurationsdatei, in der der Datenspeicher für die FPC definiert ist.Was ist der Unterschied zwischen Cache leeren und Cache leeren:
quelle
Ein sehr wichtiger Hinweis zum Magento Compiler. Sie müssen Dinge wie APC deaktivieren, wenn Sie eine Kompilierung durchführen, da der Compiler nicht kompilieren kann, was sich in APC befindet, und Ihre Kompilierung beschädigt. Für mich würde das bedeuten, APC auf dem Server zu entladen und dann Apache (httpd) neu zu starten.
quelle