Cache Magento - confusion à propos de Varnish, Redis, APC, Memcache


34

J'essaie d'améliorer les performances de Magento (tôt ou tard "MageDev" frappe ce point :)

J'ai fait des recherches et j'ai trouvé beaucoup de bons guides, mais pas homogènes.

Ce que j'ai obtenu c'est que:

  • MemCache ou Redis sont des systèmes de cache génériques, ils mettent en cache des données et peuvent être intégrés directement à Magento ( local.xml )
  • APC est un cache car le code php lui-même ne peut être intégré qu'au niveau du serveur.
  • Varnish est un proxy inverse, il cache que la réponse ne peut être intégrée qu'au niveau du serveur. (il y a une extension pour Magento, de la térébenthine, mais je ne sais pas ce que fait exactement)

Après toutes ces bonnes lectures, je suis encore un peu perplexe sur les combinaisons possibles entre les systèmes de cache ci-dessus, pour EX:

  • MemCache + APC?
  • Redis + APC?
  • puis-je ajouter du vernis à l'une des configurations ci-dessus?

Soyons clairs: la question ne concerne pas la configuration de Magento ou du serveur, mais plutôt quelles sont les possibilités et les possibilités de mélange des systèmes de cache. (à côté de cela si quelqu'un peut venir avec une bonne recommandation, je vous en serais reconnaissant.)


Pouvez-vous utiliser FPC + Varnish + Turpentine ensemble? merci à vous
Bruno Alvarenga

La térébenthine sert à percer la cache de Varnish. Comme dans, l'essence de térébenthine est utilisée pour enlever le vernis.
siliconrockstar

Réponses:


48

TL; DR - Sur MageStack, nous utilisons Varnish, Redis (cache), Redis (sessions) et Eaccelerator / Zend OPCache (selon la version de PHP)

Vous avez déjà compris l'essentiel.

Le cache, le magasin de session, le cache d'opcode, le cache de page complète et le cache de proxy inverse sont tous complètement différents.

Vous pouvez utiliser différentes technologies pour tous et vous pouvez les utiliser TOUT simultanément (y compris Varnish et un FPC)

Backends cache

  • Fichiers (Core) Par défaut
  • Memcache (Core)
  • APC (Core)
  • Redis (<1.9 module avec la permission de Colin Mollenhour)
  • MongoDB (module de courtoisie Colin Mollenhour)
  • Rubic (module de Daniel Sloof)

Vous ne pouvez utiliser qu'un seul backend de cache.

Contrairement à la croyance populaire, l’utilisation d’un cache basé sur la mémoire n’améliorera pas les performances. Mais il va surmonter certaines failles fatales dans la mise en cache basée sur les fichiers par défaut de Magento.

Au moment de rédiger ce message, Redis est ma recommandation.

Magasins de session

  • Fichiers (Core) Par défaut
  • Memcache (Core)
  • Redis (<1.9 module avec la permission de Colin Mollenhour)
  • MongoDB (module de courtoisie Colin Mollenhour)

Vous ne pouvez utiliser qu'un seul magasin de session.

Contrairement à la croyance populaire, l'utilisation d'un magasin de session basé sur la mémoire n'améliorera pas les performances.

Au moment de rédiger ce message, Redis est ma recommandation.

Cache OpCode

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

Vous pouvez réellement installer plusieurs caches d'opcode, mais ce n'est pas recommandé, et je ne m'attendrais pas à des gains.

Mes recommandations sont entre parenthèses ci-dessus.

Aucun module n'est requis pour être exploité.

Cache de proxy inverse

  • Vernis
  • Nginx
  • Apache
  • … et beaucoup plus

Vous pouvez utiliser plusieurs proxys inverses et, même si cela est complexe et sujet à l’allongement de la mémoire cache, il peut présenter des avantages (par exemple, éviter l’estampage pendant une vidange de la mémoire cache).

Utilisez-en un si nécessaire (c'est-à-dire, non pour accélérer un site lent, mais pour réduire l'utilisation des ressources sur un site rapide).

Pour exploiter un proxy inverse, il faut à la fois activer le côté serveur et un module pour Magento.

Le module a pour but de contrôler la logique de mise en cache (c'est-à-dire de dire au cache ce qu'il devrait ou non de mettre en cache) et de gérer le contenu du cache (c'est-à-dire de déclencher des purges du cache).

Je n'en recommande aucun sauf si vous avez une compréhension totale de ce que vous faites. Des mandataires inverses mal configurés peuvent casser les informations d'en-tête, peuvent causer une perte de session, le partage de session, du contenu obsolète, appliquer des limites supplémentaires au temps de chargement / tampons, consommer des ressources supplémentaires, etc.

Cache de page complet

  • EE FPC
  • … Beaucoup d'autres (via des modules)

Utilisez-en un si nécessaire (c'est-à-dire, non pour accélérer un site lent, mais pour réduire l'utilisation des ressources sur un site rapide).

Contrairement à la croyance populaire, vous pouvez (et devriez) utiliser un FPC conjointement avec un cache de proxy inverse. Les deux résolvent des problèmes différents et ont des capacités différentes.

Les FPC peuvent tirer parti de plus d’intelligence, car ils ont un accès direct à la session des utilisateurs et au cœur de Magento, alors qu’un proxy inverse n’est pas sensible aux applications (sa façon de fonctionner est assez stupide) - de sorte que les deux se complètent et ne se font pas concurrence. .

C'est à dire. Ne pensez pas Varnish ou FPC, pensez Varnish et FPC.


1
Un indice sur mod_pagespeed? par la voie grande et thx de réponse claire
Fra

2
Beaucoup de recommandations. Mais la portée de PageSpeed ​​va bien au-delà de votre question initiale (et n’a pratiquement aucun lien avec Magento lui-même). Il y a quelques conseils sur notre base de connaissances
Ben Lessani - Sonassi 11/12

Séparez clairement les différentes couches de mise en cache que vous pouvez utiliser avec Magento. Plus important encore la recommandation. Cependant, vous ne semblez pas recommander l'utilisation de cache de vernis contrairement à la recommandation de la documentation de magento - devdocs.magento.com/guides/v2.3/config-guide/varnish/…
Pandurang Patil

@PandurangPatil Vous savez que ma réponse datait d'il y a 8 ans - lorsque Magento 2 n'existait pas ... D'où mes commentaires "Au moment de la rédaction". Si Magento 2 avait existé lorsque cette question avait été posée, ma réponse aurait été différente.
Ben Lessani - Sonassi

@ BenLessani-Sonassi Je n'ai pas fait attention à la date. Quoi qu'il en soit, recommanderiez-vous d'utiliser le cache Varnish dans le contexte actuel avec magento 2.x?
Pandurang Patil

8

J'irais pour Redis + APC avec le vernis sur le dessus.

"Pourquoi Redis" demandez-vous? Lisez cette excellente réponse SO . Redis remplace fondamentalement le système de cache standard de Magento basé sur des fichiers. Comme Redis est plus rapide, cela vous donnera un peu plus de vitesse.

Le vernis n'a en fait pas grand chose à voir avec le fonctionnement interne. Il est placé en haut et met en cache le contenu statique afin qu'il n'atteigne jamais Magento en tant que demande. À l'exception des pièces perforées, c'est.

Tandis que Varnish se concentre uniquement sur la mise en cache frontale, Redis accélère également les autres types de cache, tels que les caches EAV et Configuration.

Vous pouvez éventuellement consulter certaines extensions Full Page Cache pour Magento au lieu de Varnish. Bien que ce ne soit pas aussi rapide, il est généralement plus facile à mettre en œuvre et ne repose pas sur des logiciels supplémentaires (comme Varnish).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.