O Magento geralmente é tão terrivelmente lento?
Esta é a minha primeira experiência com ele e o painel de administração simplesmente leva anos para carregar e salvar as alterações. É uma instalação padrão com os dados de teste.
O servidor em que está hospedado serve outros sites não Magento super rápido. O que é o código PHP que o Magento usa que o torna tão lento e o que pode ser feito para corrigi-lo?
php
magento
optimization
senhor-euro
fonte
fonte
Respostas:
Eu só estive tangencialmente envolvido na otimização do desempenho do Magento, mas aqui estão algumas razões pelas quais o sistema é tão lento
Partes do Magento usam um sistema de banco de dados EAV implementado no MySQL. Isso significa consultar uma única "coisa" geralmente significa consultar várias linhas
Há muitas coisas nos bastidores (configuração do aplicativo, configuração do sistema, configuração do layout etc.) que envolvem a construção de árvores XML gigantes na memória e, em seguida, "consulta" a essas mesmas árvores para obter informações. Isso requer memória (armazenamento das árvores) e CPU (análise das árvores). Alguns deles (especialmente a árvore de layout) são enormes. Além disso, a menos que o cache esteja ativado, essas árvores são criadas a partir de arquivos no disco e em cada solicitação .
O Magento usa seu sistema de configuração para permitir que você substitua as classes. Esse é um recurso poderoso, mas significa que sempre que um modelo, auxiliar ou controlador é instanciado, instruções PHP adicionais precisam ser executadas para determinar se é necessário um arquivo de classe original ou um arquivo de classe de substituição. Isso acrescenta-se.
Além do sistema de layout, o sistema de modelos do Magento envolve muitas renderizações recursivas. Isso acrescenta-se.
Em geral, os Magento Engineers foram encarregados, em primeiro lugar, de criar o sistema mais flexível e personalizável possível e se preocupar com o desempenho posteriormente.
A primeira coisa que você pode fazer para garantir um melhor desempenho é ativar o cache (Sistema -> Gerenciamento de cache). Isso aliviará parte do bloqueio de CPU / disco que ocorre enquanto o Magento está construindo suas várias árvores XML.
A segunda coisa que você deseja fazer é garantir que seu host e equipe de operações tenham experiência em ajustar o desempenho do Magento. Se você está contando com o plano de US $ 7 / mês para vê-lo, boa sorte com isso.
fonte
Além das recomendações de Alan Storm sobre armazenamento em cache, há duas coisas que eu recomendo especificamente que você analise relacionadas ao armazenamento em cache:
- Verifique se o cache está no memcached, e não no disco.
Eu cuido de algumas instalações do magento e, assim que você obtém qualquer tipo de carga no sistema, o memcached começa a funcionar muito mais rapidamente. E é muito fácil mudar isso (em relação a fazer outras coisas de magento, pelo menos!)
Um bom ponto de partida está aqui: http://www.magentocommerce.com/boards/viewthread/12998/P30/ - mas se você nunca usou o memcached antes, vale a pena examinar também algumas informações gerais.
- Ative o modelo / visualize o cache.
Este é um bom artigo: http://inchoo.net/ecommerce/magento/magento-block-caching/
Existem bons no site magento também (cache do google magento block), mas está desativado no momento.
Para adicionar meus dois centavos ao cache do bloco, aconselho que você crie seus próprios blocos em / app / code / local, estendendo os principais e definindo os parâmetros do cache, nomeie-os como xxx_Cache e atualize seu layout para usar esses blocos dos principais. Dessa forma, você evita perder suas alterações ou interromper o sistema ao atualizar o magento.
fonte
Se você ainda não o viu, o Magento e a Rackspace se uniram para criar um white paper sobre o desempenho do Magento. É excelente. https://support.rackspace.com/whitepapers/building-secure-scalable-and-highlyavailable-magento-stores-powered-by-rackspace-solutions/
--- editar ---
Outro ótimo recurso, recém-disponível (outubro de 2011), é: http://www.sessiondigital.com/assets/Uploads/Mag-Perf-WP-final.pdf
(Obrigado por Alan Storm neste caso.)
fonte
Possivelmente, também existe uma razão muito óbvia pela qual sua interface de administração é muito lenta. O Magento possui um módulo chamado Mage_AdminNotification. Tente desativar essa extensão. Porque o que faz é consultar o magentocommerce.com para novas mensagens de atualização. Se os servidores estiverem lentos, sua página de administrador aguardará e ficará lenta devido ao atraso na rede e ao carregamento das notícias externas. Se você protegeu a conexão do servidor de saída por meio de um firewall, isso pode ser ainda mais frustrante, pois a interface do administrador aguardará o tempo limite quando não puder alcançar o magentocommerce.com
Para desativá-lo: vá para Sistema -> Configuração, role para baixo e pressione Avançado (na seção Avançado). Agora desative
Mage_AdminNotification
e salve!fonte
Mage_AdminNotification
.Eu só tenho uma experiência superficial com o Magento. Eu o instalei em um servidor de grade compartilhado e o carregamento da página foi sombrio ~ 5 + segundos. Em uma cotovia, eu instalei no meu servidor dedicado otimizado para sites CMS, e me senti muito, muito ágil.
Minha hospedagem dedicada tinha ~ 10 Joomla! sites e um site VBullitin em execução.
Meu palpite é que simplesmente não terá desempenho em hospedagem compartilhada. A assinatura em excesso simplesmente não permitirá recursos suficientes para o Magento funcionar como deveria.
fonte
Estou mais envolvido na otimização de servidores gerenciados da minha empresa, mas talvez eu tenha algumas dicas para você. Primeiro, você pode examinar o código mais de perto usando o recurso de rastreamento de código do servidor Zend. Isso permitirá que você veja onde e quando as coisas ficam sujas.
Compartilho totalmente a consideração de benlumley em relação ao cache. A maioria dos sites que hospedamos nem tem o bloqueio de cache ativado. Esse cache deve ser chamado explicitamente e não "assumido". Portanto, se o seu código ainda não participou desse mecanismo, é algo que você definitivamente deseja tentar. Se você possui uma versão EE, pode obter a página inteira para obter o melhor da besta.
Um proxy reverso também ajudará bastante. Ele armazenará em cache os recursos estáticos, diminuindo significativamente a pressão na pilha de interpretação php dos seus servidores frontais.
Não se esqueça de gravar as sessões e o cache do Magento em um disco RAM. Isso definitivamente o levará a outro nível de performances.
Ainda há muito a ser dito aqui, mas estou ficando sem tempo. Você precisa saber que um bom site, bem codificado na versão 1.4.1 CE, rodando em um servidor 2x5650 Xeon + 16 GB RAM e tendo um Rproxy no topo, pode levar até 50.000 visitantes únicos por dia, com páginas fáceis para todos .
fonte
Mudar do Apache para o LiteSpeed nos ajudou muito. Além de: Editar as configurações do MySQL, instalar o Fooman Speedster (módulo para compactar / combinar arquivos js e css) e instalar o APC. O Magento também publicou um white paper sobre como obter o melhor desempenho da edição corporativa, mas é igualmente aplicável às outras versões: http://www.magentocommerce.com/whitepaper/
fonte
Há muitas razões pelas quais o seu carrinho de compras Magento pode estar lento, mas não há desculpas, pois há várias maneiras de elevar o problema e torná-lo muito rápido. A ativação do Gzip modificando seu arquivo htaccess é um começo. Você também pode instalar a extensão fooman speedster. O tipo de servidor usado também determinará a velocidade da sua loja. Mais dicas e uma explicação melhor aqui http://www.interactone.com/how-to-speed-up-magento/
fonte
Quando eu instalei, eu tinha páginas que estavam demorando 30 segundos para carregar. Meu servidor não estava no limite de memória RAM ou processador, então não sabia o que fazer. Olhando para o painel de rede do firebug, ele carregava cerca de 100 arquivos por página e cada um deles demorou muito tempo para se conectar. Após instalar o fooman speedster e o gzip no htaccess, os tempos de carregamento foram reduzidos para 3 segundos, como se estivessem em outros carrinhos de compras no meu servidor.
fonte
O Magento é muito lento porque o design do banco de dados não é muito bom. O código é uma bagunça e muito difícil de atualizar e otimizar. Portanto, todas as otimizações são feitas via cache em vez de código.
Por outro lado. É uma loja virtual com muitas ferramentas. Portanto, se você precisar de uma loja virtual flexível, basta comprar um servidor muito poderoso e você ficará bem.
fonte
também se resume a funcionalidade versus desempenho.
O desempenho bruto é obtido usando nginx, php-fpm, memcached, apc e um servidor projetado adequado.
Funcionalidades como desempenho plesk e magento podem ser gerenciadas levando toda a infraestrutura em perspectiva ao projetar uma nuvem de desempenho magento.
fonte