Magento Cache - Verwirrung um Varnish, Redis, APC, Memcache

34

Ich versuche die Magento-Leistung zu verbessern (früher oder später hat "MageDev" diesen Punkt erreicht :)

Ich recherchierte und fand viele gute, aber nicht homogene Führer.

Was ich habe ist das:

  • MemCache oder Redis sind generische Cache-Systeme, die Daten zwischenspeichern und direkt in Magento ( local.xml ) integriert werden können.
  • APC ist ein Cache für den PHP-Code selbst, der nur auf Serverebene eingebunden werden kann.
  • Lack ist ein Reverse-Proxy, er zwischenspeichert die Antwort kann nur auf Serverebene integriert werden. (Es gibt eine Erweiterung für Magento, Terpentin, aber ich bin mir nicht sicher, was genau passiert)

Nach all dem guten Lesen bin ich immer noch ein bisschen verwirrt darüber, welche der oben genannten Cache-Systeme in Kombinationen verwendet werden können, zum Beispiel:

  • MemCache + APC?
  • Redis + APC?
  • kann ich Lack zu einer der oben genannten Konfigurationen hinzufügen?

Um ganz klar zu sein, geht es nicht darum, wie Magento oder der Server konfiguriert werden sollen, sondern welche Möglichkeiten es gibt und wie Cache-Systeme gemischt werden sollen. (Wenn jemand eine gute Empfehlung abgeben kann, wäre ich dankbar.)

Fra
quelle
Können Sie FPC + Lack + Terpentin zusammen verwenden? Danke
Bruno Alvarenga
Terpentin ist zum Lochen des Varnish-Caches gedacht. Wie in wird Terpentin zum Entfernen von Lack verwendet.
Siliconrockstar

Antworten:

48

TL; DR - Auf MageStack verwenden wir Varnish, Redis (Cache), Redis (Sitzungen) und Eaccelerator / Zend OPCache (abhängig von der PHP-Version)

Sie haben das meiste schon verstanden.

Das Cache-Backend, der Sitzungsspeicher, der Opcode-Cache, der Ganzseiten-Cache und der Reverse-Proxy-Cache sind völlig unterschiedlich.

Sie können verschiedene Technologien für alle verwenden und Sie können sie ALLE gleichzeitig verwenden (einschließlich Lack und ein FPC)

Cache Backends

  • Dateien (Core) Standard
  • Memcache (Core)
  • APC (Core)
  • Redis (<1.9 Modul mit freundlicher Genehmigung von Colin Mollenhour)
  • MongoDB (Modul mit freundlicher Genehmigung von Colin Mollenhour)
  • Rubic (Modul mit freundlicher Genehmigung von Daniel Sloof)

Sie können nur ein Cache-Backend verwenden.

Entgegen der weit verbreiteten Meinung wird die Leistung durch die Verwendung eines speicherbasierten Caches nicht verbessert. Es werden jedoch einige schwerwiegende Fehler im dateibasierten Standard-Caching von Magento behoben.

Zum Zeitpunkt des Schreibens dieser Nachricht ist Redis meine Empfehlung.

Sitzungsspeicher

  • Dateien (Core) Standard
  • Memcache (Core)
  • Redis (<1.9 Modul mit freundlicher Genehmigung von Colin Mollenhour)
  • MongoDB (Modul mit freundlicher Genehmigung von Colin Mollenhour)

Sie können nur einen Sitzungsspeicher verwenden.

Entgegen der landläufigen Meinung verbessert die Verwendung eines speicherbasierten Sitzungsspeichers die Leistung nicht.

Zum Zeitpunkt des Schreibens dieser Nachricht ist Redis meine Empfehlung.

OpCode-Cache

  • APC
  • XCache
  • Beschleuniger (PHP <5.4)
  • Zend OPCache (PHP> 5.4)

Sie können tatsächlich mehrere Opcode-Caches installieren, dies wird jedoch nicht empfohlen, und ich würde auch keine Gewinne erwarten.

Meine Empfehlungen stehen in den Klammern oben.

Es muss kein Modul installiert werden, um dies zu nutzen.

Reverse Proxy Cache

  • Lack
  • Nginx
  • Apache
  • … und viele mehr

Sie können mehrere Reverse-Proxys verwenden. Dies ist zwar komplex und anfällig für Cacheverlängerungen, kann aber auch Vorteile haben (z. B. um ein Stempeln während eines Cache-Flushs zu verhindern).

Verwenden Sie eine, wenn dies erforderlich ist (d. H. Nicht, um eine langsame Site zu beschleunigen, sondern um die Ressourcennutzung auf einer schnellen Site zu verringern).

Um einen Reverse-Proxy nutzen zu können, müssen sowohl die Serverseite als auch ein Modul für Magento aktiviert werden.

Der Grund für das Modul besteht darin, die Steuerung der Cache-Logik zu unterstützen (dh dem Cache mitzuteilen, was gecacht werden soll und was nicht) und den Cache-Inhalt zu verwalten (dh das Löschen des Caches auszulösen).

Ich kann es nur empfehlen, wenn Sie genau wissen, was Sie tun. Falsch eingerichtete Reverse-Proxys können die Header-Informationen beschädigen, zu Sitzungsverlust, Sitzungsfreigabe und veraltetem Inhalt führen, zusätzliche Grenzwerte für Ladezeit / Puffer festlegen, zusätzliche Ressourcen verbrauchen usw.

Ganzseitiger Cache

  • EE FPC
  • … Viele andere (über Module)

Verwenden Sie eine, wenn dies erforderlich ist (d. H. Nicht, um eine langsame Site zu beschleunigen, sondern um die Ressourcennutzung auf einer schnellen Site zu verringern).

Entgegen der landläufigen Meinung können (und sollten) Sie eine FPC in Verbindung mit einem Reverse-Proxy-Cache verwenden. Die beiden lösen unterschiedliche Probleme und haben unterschiedliche Fähigkeiten.

FPCs können mehr Intelligenz nutzen, da sie direkten Zugriff auf die Benutzersitzung und den Kern von Magento haben, wohingegen ein Reverse-Proxy nicht anwendungsbezogen ist (es ist ziemlich dumm, wie es funktioniert) - daher ergänzen sich die beiden, konkurrieren nicht miteinander .

Dh Denken Sie nicht an Lack oder FPC, denken Sie an Lack und FPC.

Ben Lessani - Sonassi
quelle
1
Irgendeine Ahnung mod_pagespeed? übrigens tolle und klare Antwort danke
Fra
2
Viele Empfehlungen. Der Umfang von PageSpeed ​​geht jedoch weit über Ihre ursprüngliche Frage hinaus (und hängt weitgehend nicht mit Magento selbst zusammen). Es gibt ein paar Tipps auf unserer KB hier, sonassihosting.com/help/magestack/…
Ben Lessani - Sonassi
Klare Trennung zwischen verschiedenen Caching-Ebenen, die mit Magento verwendet werden können. Am wichtigsten ist die Empfehlung. Allerdings scheinen Sie nicht refer mit Lack - Cache im Gegensatz zu magento Dokumentation Empfehlung zu empfehlen - devdocs.magento.com/guides/v2.3/config-guide/varnish/...
Pandurang Patil
@PandurangPatil Sie wissen, dass meine Antwort von vor 8 Jahren war - als Magento 2 nicht existierte ... Daher meine Kommentare "Zum Zeitpunkt des Schreibens". Wenn Magento 2 existiert hätte, als diese Frage gestellt wurde, wäre meine Antwort anders ausgefallen.
Ben Lessani - Sonassi
@BenLessani-Sonassi Ich habe nicht auf das Datum geachtet. Wie auch immer, würden Sie empfehlen, den Varnish-Cache im heutigen Kontext mit Magento 2.x zu verwenden?
Pandurang Patil
8

Ich würde für Redis + APC mit Lack an der Spitze gehen.

"Warum redis" fragst du? Lesen Sie diese hervorragende SO-Antwort . Redis ersetzt im Wesentlichen das dateibasierte Standard-Caching-System von Magento. Da Redis schneller ist, können Sie die Geschwindigkeit verbessern.

Lack hat eigentlich nicht so viel mit dem Innenleben zu tun. Es wird an die Spitze gestellt und speichert statischen Inhalt, sodass Magento nie als Anforderung erreicht wird. Mit Ausnahme der gelochten Teile.

Während sich Varnish nur auf das Frontend-Caching konzentriert, beschleunigt Redis auch die anderen Cache-Typen wie den EAV- und den Konfigurations-Cache.

Optional können Sie einige Full Page Cache-Erweiterungen für Magento anstelle von Varnish auschecken. Obwohl es nicht so schnell ist, ist es im Allgemeinen einfacher zu implementieren und benötigt keine zusätzliche Software (wie Varnish).

Sander Mangel
quelle