Os benefícios de desempenho do cache de página inteira no Magento Enterprise são bastante conhecidos. O que pode não ser tão conhecido é que, para que todos os benefícios sejam alcançados, ele deve ser totalmente preenchido e quente, principalmente em conjuntos de produtos grandes, nos quais você não tem apenas algumas páginas, fazendo uso de tráfego orgânico para prepará-lo rápido o suficiente.
O Magento inclui um cronograma interno para rastrear o site e aquecer o FPC de manhã cedo.
Eu já vi e ouvi falar de problemas causados por tarefas matinais demorando muito para serem executadas, impedindo a execução de outras tarefas e gostaria de saber o que os outros usam ou sugerem que sejam usados para fazer isso. Algumas idéias que tenho são:
- Crie um script de shell para rastrear todas as páginas no arquivo de mapa do site gerado.
- Use uma entrada separada do crontab e um script PHP curto para inicializar o Magento e executar o processo do rastreador diretamente.
Quaisquer pensamentos e / ou experiências sobre isso são bem-vindos!
fonte
Respostas:
Você pode usar o cerco em combinação com o
sitemap.xml
arquivo, como o MageSpeedTest .Então corra
Conteúdo proveniente daqui .
fonte
–delay
Nós simplesmente não o fazemos. Sempre. Vamos dizer isso repetidamente, mas
Seu site precisa ser rápido sem a adição de FPC (ou verniz, por isso). Sempre haverá um momento em que o conteúdo não é preparado (seu cenário acima).
Em uma loja descarregada, o tempo de carregamento da página com o FPC não deve ser muito mais impressionante do que o não-FPC; O Magento é bastante capaz de
< 400ms
carregar as páginas em caches padrão (em categorias / produtos / páginas de pesquisa). O FPC reduzirá isso para< 80ms
- mas vem com advertências.Novos itens / pesquisa mais relevante ficam desatualizados até a expiração da invalidação ou do TTL
etc.
Por que confiar no FPC (ou verniz) é uma má idéia
Se você deseja garantir continuamente que os caches sejam preparados manualmente, provavelmente há alguns motivos
Você não pode armazenar tudo em cache
Se você compra uma loja com apenas 5 categorias, aninhado em 2 níveis, 5 atributos filtráveis, 5 opções de atributos cada e 1000 produtos; isso é muitas combinações possíveis.
25 opções para escolher, escolhendo uma até 5 vezes seguidas - não sou estatístico , mas sei que é ... (supondo que o número de opções de atributos não diminua completamente)
Ok, o exposto acima não é um cenário provável, como eu imaginaria, em três cliques - o número de produtos disponíveis teria diminuído o suficiente para que o cliente encontrasse seu produto. Então, mesmo que fosse ...
Depois, multiplicado por 5 categorias, ou seja, 625 URLs. Nesse estágio, estamos falando de um pequeno catálogo e ignorando completamente todos os URLs do produto.
Também não consideramos que, se você aninhar categorias com
is_anchor
on, isso aumentará exponencialmente.Portanto, para rastrear esse volume de páginas - você espera que os tempos de carregamento da página sejam agradáveis e baixos, para que seja um processo rápido e leve (derrotando assim o objetivo do rastreamento) - ou que você tenha tempo suficiente para concluir antes que o TTL expire.
Se suas páginas tiveram um tempo de carregamento de 0,4s e você tinha uma CPU de 8 núcleos - então ...
0,5 minutos, nada mal - mas vamos imaginar que você teve tempos de carregamento de página 2s
Mas se você adotou o cenário máximo possível
Portanto, esse é o seu servidor de produção, com carga de 100% da CPU por 15 minutos. Você reduziria a velocidade de rastreamento proporcionalmente ao TTL desejado.
Portanto, se você deseja que o conteúdo tenha um TTL de 3600s, o rastreamento pode ser 4 vezes mais lento - ou seja. apenas 25% da CPU dedicada ao rastreamento. São muitos recursos apenas para manter o conteúdo da categoria preparado - nem sequer consideramos produtos, termos de pesquisa ou visualizações adicionais da loja neste estágio
De fato, apenas observar o tamanho completo das combinações na
catalog_url_rewrites
tabela (que nem sequer leva em consideração os parâmetros da navegação em camadas) dará uma idéia de quantos URLs você pode acabar precisando rastrear.Cada loja certamente será diferente, mas o que estou tentando chegar em casa é que rastrear o site para obter o FPC principal não é prático. Apenas garanta que sua loja seja rápida para começar .
Onde o FPC é útil
Onde os benefícios do FPC entram em jogo é em uma loja muito carregada - onde você tem níveis genuinamente altos de tráfego e os caches são naturais e continuamente preparados apenas pela queda de seus pés.
O FPC entra em ação reduzindo as despesas gerais de infraestrutura no conteúdo geralmente solicitado - reduzindo as chamadas repetidas para o back-end do Magento.
Portanto, descobrimos que o FPC é ótimo para implantar quando você tem níveis muito altos de tráfego - não para reduzir o tempo de carregamento da página - mas para reduzir o uso de recursos.
Quem se importa, eu ainda quero rastejar
Bem, então você tem duas opções
E há muitos utilitários para fazer os dois, esses são alguns dos quais eu conheço
Usando Mage-Perftest
Você pode rastrear sua loja com o Mage-Perftest facilmente, primeiro faça o download
Em seguida, defina o processo de rastreamento usando o mapa do site Magento (você pode personalizá-lo criando um mapa do site com qualquer URL, desde que os URLs sejam agrupados em
<loc></loc>
tags). O comando a seguir lerá todos os URLs do arquivo do mapa do site e rastreará (somente PHP) os URLs ao longo de 1440 minutos (1 dia). Se o servidor exceder 20% da CPU ou uma carga média de 2 - o rastreamento será interrompido temporariamente.Se você tiver 1000 URLs, rastreados por um dia, isso será de aprox. 1 solicitação a cada 86 segundo (s) ~ meta de 0,011 RPS
fonte
Hoje, vou guardar todo o meu discurso para uma postagem de blog, mas, enquanto isso, tenho um pico no meu pequeno aquecedor de cache
wfpc
.Teste de desempenho
Você pode testar o desempenho do seu site Magento
./wfpc -t http://mymagentosite.com/sitemap.xml
Aquecimento FPC
E você pode aquecer o FPC, que acessará todos os URLs em sitemap.xml.
./wfpc -w http://mymagentosite.com/sitemap.xml
Você também pode colocar um atraso entre as solicitações, se quiser. Aqui está um atraso de 1 segundo entre as solicitações.
./wfpc -w -d=1 http://mymagentosite.com/sitemap.xml
O modo de teste atinge apenas 10 URLs aleatoriamente; portanto, depois de aquecer seu FPC, você pode executar o modo de teste para descobrir quanta diferença o FPC faz!
Pensamentos
Pessoalmente, acho que um mais quente faz sentido ... Em um site pequeno, com cerca de 40 páginas, o tempo de download é reduzido pela metade pelo FPC. Em um site grande com quase 40.000 produtos usando Lesti_FPC com APCu como back-end, estou usando pouco mais de 200 MB para o cache, o que francamente não é nada no servidor de produção de 8 GB.
fonte