Caché de Magento: confusión sobre Varnish, Redis, APC, Memcache


34

Estoy tratando de mejorar el rendimiento de Magento (tarde o temprano "MageDev" llegó a este punto :)

Investigué un poco y encontré muchas guías buenas, pero no homogéneas.

Lo que obtuve es que:

  • MemCache o Redis son un sistema de caché genérico, almacenan datos en caché y se pueden integrar directamente con Magento ( local.xml )
  • APC es un caché para el código php en sí solo puede integrarse a nivel de servidor.
  • Varnish es un proxy inverso, almacena en caché la respuesta solo se puede integrar a nivel de servidor. (hay una extensión para Magento, trementina, pero no estoy seguro de qué hace exactamente)

Después de toda esta buena lectura, todavía estoy un poco confundido sobre qué de los sistemas de caché anteriores es posible usar en combinaciones, por ejemplo:

  • MemCache + APC?
  • Redis + APC?
  • ¿Puedo agregar Barniz a una de las configuraciones anteriores?

Para que quede claro, la pregunta no es sobre cómo configurar Magento o el servidor, sino cuáles son las posibilidades permitidas y alguna autorización sobre cómo mezclar sistemas de caché. (además de eso, si alguien puede venir con una buena recomendación, lo agradecería).


¿Puedes usar FPC + Barniz + Trementina juntos? gracias
Bruno Alvarenga

La trementina es para perforar el alijo de barniz. Como en, la trementina se usa para eliminar el barniz.
siliconrockstar

Respuestas:


48

TL; DR : en MageStack utilizamos Varnish, Redis (caché), Redis (sesiones) y Eaccelerator / Zend OPCache (según la versión de PHP)

Ya has entendido la mayor parte.

El backend de caché, el almacén de sesión, el caché de código operativo, el caché de página completa y el caché de proxy inverso son completamente diferentes.

Puede usar diferentes tecnologías para todos y puede usar TODOS simultáneamente (incluido Varnish y un FPC)

Backends de caché

  • Archivos (Core) Predeterminado
  • Memcache (núcleo)
  • APC (núcleo)
  • Redis (módulo <1.9 cortesía de Colin Mollenhour)
  • MongoDB (módulo cortesía de Colin Mollenhour)
  • Rubic (módulo cortesía de Daniel Sloof)

Solo puede usar un backend de caché.

Contrariamente a la creencia popular, el uso de una memoria caché basada en memoria no mejorará el rendimiento. Pero superará algunos defectos fatales en el almacenamiento en caché basado en archivos predeterminados de Magento.

Al escribir este mensaje, Redis es mi recomendación.

Tiendas de sesiones

  • Archivos (Core) Predeterminado
  • Memcache (núcleo)
  • Redis (módulo <1.9 cortesía de Colin Mollenhour)
  • MongoDB (módulo cortesía de Colin Mollenhour)

Solo puede usar una tienda de sesión.

Contrariamente a la creencia popular, el uso de una tienda de sesión basada en memoria no mejorará el rendimiento.

Al escribir este mensaje, Redis es mi recomendación.

OpCode Cache

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

En realidad, puede instalar múltiples cachés de código de operación, pero no se recomienda, ni esperaría ver ninguna ganancia.

Mis recomendaciones están entre paréntesis.

No se requiere instalar ningún módulo para aprovechar esto.

Caché de proxy inverso

  • Barniz
  • Nginx
  • apache
  • … y muchos más

Puede usar múltiples servidores proxy inversos, y si bien hacerlo es complejo y propenso a la elongación de la memoria caché, puede tener ventajas (es decir, para evitar el estampado durante una descarga de memoria caché).

Use uno cuando sea necesario (es decir, no para acelerar un sitio lento, sino para reducir el uso de recursos en un sitio rápido).

Para aprovechar un proxy inverso, necesita habilitar el lado del servidor y necesita un módulo para Magento.

El motivo del módulo es ayudar a controlar la lógica de almacenamiento en caché (es decir, decirle a la memoria caché lo que debe y no debe almacenar en memoria caché) y también administrar el contenido de la memoria caché (es decir, activar las purgas de la memoria caché).

No recomiendo ninguno a menos que tenga una comprensión total de lo que está haciendo. Los servidores proxy mal configurados pueden romper la información del encabezado, causar pérdida de sesión, compartir sesiones, contenido obsoleto, aplicar límites adicionales al tiempo de carga / almacenamientos intermedios, consumir recursos adicionales, etc.

Caché de página completa

  • EE FPC
  • ... muchos otros (a través de módulos)

Use uno cuando sea necesario (es decir, no para acelerar un sitio lento, sino para reducir el uso de recursos en un sitio rápido).

Contrariamente a la creencia popular, puede (y debe) usar un FPC junto con un caché de proxy inverso. Los dos resuelven problemas diferentes y tienen capacidades diferentes.

Los FPC pueden aprovechar más inteligencia, porque tienen acceso directo a la sesión de los usuarios y al núcleo de Magento, mientras que un proxy inverso no es consciente de la aplicación (es bastante tonto en la forma en que funciona), por lo que los dos se complementan entre sí, no compiten entre sí .

Es decir. No pienses en Barniz o FPC, piensa en Barniz y FPC.


1
Alguna pista sobre mod_pagespeed? por cierto genial y clara respuesta thx
Fra

2
Muchas recomendaciones Pero el alcance de PageSpeed ​​está más allá de su pregunta original (y en gran medida no está relacionado con Magento). Hay algunos consejos sobre nuestro KB aquí, sonassihosting.com/help/magestack/…
Ben Lessani - Sonassi

Clara segregación entre diferentes capas de almacenamiento en caché que se pueden usar con Magento. Lo más importante es la recomendación. Sin embargo, no parece recomendar el uso de caché de barniz en contrario a Magento recomendación documentación se refiere: - devdocs.magento.com/guides/v2.3/config-guide/varnish/...
Pandurang Patil

@PandurangPatil Saben que mi respuesta fue de hace 8 años, cuando Magento 2 no existía ... De ahí mis comentarios "Al momento de escribir". Si Magento 2 hubiera existido cuando se hizo esta pregunta, mi respuesta hubiera sido diferente.
Ben Lessani - Sonassi

@ BenLessani-Sonassi No presté atención a la fecha. De todos modos, ¿recomendaría usar el caché Varnish en el contexto actual con magento 2.x?
Pandurang Patil

8

Iría por Redis + APC con Varnish en la parte superior.

'¿Por qué Redis' preguntas? Lea esta excelente respuesta SO . Redis básicamente reemplaza el sistema de almacenamiento en caché basado en archivos estándar de Magento. Dado que Redis es más rápido, le dará una mejora en la velocidad.

El barniz en realidad no tiene mucho que ver con el funcionamiento interno. Se coloca en la parte superior y almacena en caché el contenido estático, por lo que nunca llega a Magento como una solicitud. Excepto por las partes perforadas que es.

Mientras que Varnish solo se centra en el almacenamiento en caché de la interfaz, Redis también acelerará los otros tipos de caché, como el EAV y los cachés de configuración.

Opcionalmente, puede consultar algunas extensiones de caché de página completa para Magento en lugar de Varnish. Si bien no es tan rápido, generalmente es más fácil de implementar y no depende de software adicional (como Varnish)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.