Magento Cache - confusão sobre verniz, redis, APC, Memcache


34

Estou tentando melhorar as performances do Magento (mais cedo ou mais tarde "MageDev" chegou a este ponto :)

Fiz algumas pesquisas e achei muitos guias bons, mas não homogêneos.

O que eu consegui é que:

  • MemCache ou Redis são um sistema genérico de cache, armazenam em cache dados e podem ser integrados diretamente ao Magento ( local.xml )
  • APC é um cache para o código php em si só pode ser integrado no nível do servidor.
  • O verniz é um proxy reverso; ele armazena em cache a resposta só pode ser integrada no nível do servidor. (existe uma extensão para Magento, aguarrás, mas não sei o que exatamente faz)

Depois de toda essa boa leitura, ainda estou um pouco confuso sobre o que é possível usar nos sistemas de cache acima em combinações, para o EX:

  • MemCache + APC?
  • Redis + APC?
  • posso adicionar o verniz a uma das configurações acima?

Só para esclarecer, a questão não é sobre como configurar o Magento ou o servidor, mas quais são as possibilidades permitidas e algumas informações sobre como misturar sistemas de cache. (Além disso, se alguém puder vir com uma boa recomendação, eu agradeceria.)


Você pode usar FPC + Verniz + Turpentine juntos? obrigado
Bruno Alvarenga

A terebintina serve para perfurar o cache do verniz. Como em, aguarrás é usado para remover verniz.
siliconrockstar 23/04

Respostas:


48

TL; DR - No MageStack, usamos Varnish, Redis (cache), Redis (sessões) e Eaccelerator / Zend OPCache (dependendo da versão do PHP)

Você já entendeu a maior parte.

O back-end do cache, o armazenamento da sessão, o cache do código de operação, o cache da página inteira e o proxy reverso são todos completamente diferentes.

Você pode usar diferentes tecnologias para todos e usá-las TODAS simultaneamente (incluindo verniz e um FPC)

Back-ends de cache

  • Arquivos (Núcleo) Padrão
  • Memcache (Core)
  • APC (Core)
  • Redis (módulo <1,9 cortesia de Colin Mollenhour)
  • MongoDB (módulo cortesia de Colin Mollenhour)
  • Rubic (módulo cortesia de Daniel Sloof)

Você pode usar apenas um back-end de cache.

Ao contrário da crença popular, o uso de um cache baseado em memória não melhorará o desempenho. Mas ele superará algumas falhas fatais no cache padrão do Magento, com base em arquivos.

Ao escrever esta mensagem, Redis é minha recomendação.

Armazenamentos de sessões

  • Arquivos (Núcleo) Padrão
  • Memcache (Core)
  • Redis (módulo <1,9 cortesia de Colin Mollenhour)
  • MongoDB (módulo cortesia de Colin Mollenhour)

Você pode usar apenas um armazenamento de sessão.

Ao contrário da crença popular, o uso de um armazenamento de sessão baseado em memória não melhorará o desempenho.

Ao escrever esta mensagem, Redis é minha recomendação.

Cache do OpCode

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

Na verdade, você pode instalar vários caches de código de operação, mas isso não é recomendado, nem eu esperaria obter ganhos.

Minhas recomendações estão entre parênteses acima.

Não é necessário instalar nenhum módulo para alavancar isso.

Cache de proxy reverso

  • Verniz
  • Nginx
  • Apache
  • … e muitos mais

Você pode usar vários proxies reversos e, embora isso seja complexo e propenso ao alongamento do cache, ele pode ter méritos (por exemplo, para evitar a estampagem durante a liberação do cache).

Use um quando necessário (ou seja, não para acelerar um site lento, mas para reduzir o uso de recursos em um site rápido).

Para alavancar um proxy reverso, ele precisa do lado do servidor habilitado e precisa de um módulo para o Magento.

O motivo do módulo é ajudar a controlar a lógica de armazenamento em cache (por exemplo, para informar ao cache o que ele deve e não deve armazenar em cache) e também para gerenciar o conteúdo do cache (ou seja, para acionar limpezas do cache).

Eu não recomendo, a menos que você tenha uma compreensão total do que está fazendo. Os proxies reversos configurados incorretamente podem interromper as informações do cabeçalho, causar perda de sessão, compartilhamento de sessão, conteúdo obsoleto, aplicar limites adicionais ao tempo de carregamento / buffers, consumir recursos adicionais etc.

Cache de página inteira

  • EE FPC
  • ... muitos outros (via módulos)

Use um quando necessário (ou seja, não para acelerar um site lento, mas para reduzir o uso de recursos em um site rápido).

Ao contrário da crença popular, você pode (e deve) usar um FPC em conjunto com um cache proxy reverso. Os dois resolvem problemas diferentes e têm capacidades diferentes.

Os FPCs podem alavancar mais inteligência, porque têm acesso direto à sessão dos usuários e ao núcleo do Magento, enquanto um proxy reverso não tem conhecimento de aplicativos (é bastante idiota na maneira como funciona) - então os dois se complementam, não competem entre si .

Ou seja. Não pense em verniz ou FPC, pense em verniz e FPC.


11
Alguma pista mod_pagespeed? a propósito, grande e clara resposta thx
Fra

2
Muitas recomendações. Mas o escopo do PageSpeed ​​está muito além da sua pergunta original (e em grande parte não relacionada ao próprio Magento). Há algumas dicas em nosso KB aqui, sonassihosting.com/help/magestack/…
Ben Lessani - Sonassi

Separação clara entre diferentes camadas de armazenamento em cache que podem ser usadas com o Magento. Mais importante ainda, a recomendação. No entanto, parece que você não recomenda o uso de cache de verniz, ao contrário da recomendação de documentação do magento - devdocs.magento.com/guides/v2.3/config-guide/varnish/…
Pandurang Patil

@PandurangPatil Você está ciente de que minha resposta foi de 8 anos atrás - quando Magento 2 não existia ... Daí meus comentários "No momento da redação". Se o Magento 2 existisse quando essa pergunta foi feita, minha resposta teria sido diferente.
Ben Lessani - Sonassi

@ BenLessani-Sonassi Não prestei atenção à data. Enfim, você recomendaria usar o cache do Varnish no contexto atual com o magento 2.x?
Pandurang Patil

8

Eu iria para Redis + APC com verniz no topo.

'Por que Redis' você pergunta? Leia esta excelente resposta SO . Redis basicamente substitui o sistema de cache padrão baseado em arquivo do Magento. Como o Redis é mais rápido, ele oferece melhorias na velocidade.

O verniz, na verdade, não tem muito a ver com o funcionamento interno. Ele é colocado no topo e armazena em cache o conteúdo estático, para que nunca chegue ao Magento como uma solicitação. Exceto pelas peças perfuradas que são.

Enquanto o Varnish se concentra apenas no cache de front-end, o Redis também acelera outros tipos de cache, como os caches EAV e Configuration.

Opcionalmente, você pode verificar algumas extensões de cache de página inteira para Magento em vez de Varnish. Embora não seja tão rápido, geralmente é mais fácil de implementar e não depende de software extra (como o Varnish)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.