Pergunta

é Magento geralmente tão terrivelmente lento?

Esta é a minha primeira experiência com ele e painel de administração, simplesmente leva uma eternidade para carregar e salvar as alterações. É uma instalação padrão com os dados de teste.

O servidor onde está hospedado serve outros sites não-Magento super rápido. O que é sobre o código PHP que Magento usos que o torna tão lento, eo que pode ser feito para corrigi-lo?

Foi útil?

Solução

Eu só foi tangencialmente envolvidos na otimização de Magento para o desempenho, mas é aqui algumas razões pelas quais o sistema é tão lento

  1. Peças de Magento usar um sistema de banco de dados EAV implementado em cima do MySQL. Isto significa consultando uma "coisa" única muitas vezes significa consultando várias linhas

  2. Há um monte de coisas nos bastidores (configuração do aplicativo, configuração do sistema, configuração de layout, etc.) que envolvem a construção em cima de árvores XML gigantes na memória e, em seguida, "consultando" essas mesmas árvores para obter informações. Isso leva a memória (armazenar as árvores) e CPU (análise das árvores). Algumas delas (especialmente a árvore de layout) são enormes. Além disso, a menos que o cache está ligado, estas árvores são construídas a partir de arquivos no disco e em cada solicitação .

  3. Magento usa seu sistema de configuração para permitir que você substituir classes. Este é um recurso poderoso, mas isso significa que a qualquer momento um modelo, ajudante, ou controlador é instanciado, instruções PHP extras precisa executar para determinar se um arquivo classe original ou um arquivos de classe de substituição é necessária. Isto acrescenta-se.

  4. Além do sistema de layout, sistema de templates do Magento envolve um monte de renderização recursiva. Isto acrescenta-se.

Em geral, o Magento engenheiros foram incumbidos, em primeiro lugar, com a construção do sistema mais flexível, personalizável possível, e se preocupar com o desempenho mais tarde.

A primeira coisa que você pode fazer para garantir um melhor desempenho é ligar o cache (Sistema -> Administração Cache). Isso vai aliviar um pouco o bloqueio CPU / disco que vai sobre enquanto Magento está construindo suas várias árvores XML.

A segunda coisa que você quer fazer é garantir a sua equipa anfitriã e as operações tem um desempenho experiência de sintonia Magento. Se você está contando com o plano de US $ 7 / mês para vê-lo através, bem, boa sorte com isso.

Outras dicas

Além disso as recomendações do Alan tempestade sobre caching, há duas coisas que eu especificamente recomendo que você olhar para relacionado a um cache:

-. Certifique-se caching está em memcached, ao invés de no disco

Eu olho depois de um par de instalações Magento, e uma vez que você obter qualquer tipo de carga no sistema, começa memcached para executar muito mais rápido. E os seus mortos fácil mudá-lo mais (em relação a fazer outras coisas magento pelo menos!)

bom ponto de partida é aqui: http://www.magentocommerce.com/boards / viewthread / 12998 / P30 / -. mas se você não usei memcached em tudo antes, vale a pena olhar para algumas informações gerais sobre o assunto, bem

-. Ativar modelo / view caching

Este é um artigo bom: http://inchoo.net/ecommerce/magento / magento-block-caching /

Existem bons no site magento também (google bloco de cache Magento), mas seu baixo no momento.

Para adicionar meus dois centavos para o cache de bloco, eu aconselho que você crie seus próprios blocos em / app / code / local, estendendo-se os principais e definir os parâmetros de cache, nomeá-los xxx_Cache e depois atualizar o seu layout para utilização estes blocos em vez dos principais. Desta forma, você evita perder as suas alterações ou quebrar o sistema quando você atualizar magento.

Se você não viu ainda, Magento e Rackspace se uniram para criar um livro branco sobre a optimização do desempenho Magento. É excelente. https : //support.rackspace.com/whitepapers/building-secure-scalable-and-highly-available-magento-stores-powered-by-rackspace-solutions/

--- --- editar

Outro grande recurso, recentemente disponível (Out 2011) é: http://www.sessiondigital.com/assets/Uploads/ Mag-Perf-WP-Final.pdf

(Graças devido a Alan Storm em um presente.)

Há possivelmente também uma razão muito não-óbvio porque sua interface de administração é muito lento. Magento tem um módulo chamado Mage_AdminNotification. Tente desativar que ext. Porque o que ele faz é consulta magentocommerce.com para novas mensagens de atualização. Se seus servidores são lentos sua página espera admin e está em vigor lento devido ao intervalo de rede e carregamento da notícia externo. Se você tem assegurado a sua conexão com o servidor de saída através de um firewall isso pode ser ainda mais frustrante, já que a interface de administração irá aguardar o tempo limite quando ele não pode chegar magentocommerce.com

Para desativá-lo: vá para Sistema -> Configuração, vá até o fundo e bateu Avançado (na seção Avançado). Agora desativar Mage_AdminNotification e salvar!

Eu só tenho uma experiência superficial com Magento. Eu instalei-o em uma grade em servidor compartilhado e o carregamento da página era sombrio ~ 5 + segundos. Em uma brincadeira, eu instalei no meu otimizados para sites CMS servidor dedicado, e me senti muito, muito snappy.

Meu Dedicado hospedagem tinha ~ 10 Joomla! sites e um site VBullitin execução.

Meu palpite é que é só não vai ser alto desempenho em hospedagem compartilhada. O excesso de subscrição só não vai permitir que os recursos suficientes para Magento para executar como deveria.

Eu estou mais envolvido na otimização servidor gerenciado na minha empresa, mas eu possa ter algumas dicas para você. Primeiro, você pode olhar para o código usando mais de perto o recurso de rastreamento de código de servidor Zend. Ele irá permitir que você veja onde e quando as coisas ficam sujas.

consideração

I totalmente de benlumley share em relação ao cache. A maioria dos sites que anfitrião nem sequer tem o cache de bloco habilitar. Esta cache tem de ser explicitamente chamado e não "assumido". Então, se você código ainda não participou deste mecanismo, é algo que você definitivamente quero tentar. Se você tiver uma versão EE, você pode obter a página completa-se, a fim de obter o melhor da besta.

Um proxy reverso também vai ajudar muito. Ele vai armazenar em cache os ressources estáticos, diminuindo significativamente a pressão sobre a pilha de interpretação php de seus servidores da frente.

Não se esqueça de escrever as sessões e cache do Magento para um disco RAM. Isso também vai certamente levá-lo a outro nível de performances.

Ainda há muito a ser dito aqui, mas eu estou correndo contra o tempo. Você tem que saber que um site bom, bem codificado em uma versão 1.4.1 CE, rodando em um servidor 16 RAM 2x5650 Xeon + GB e ter um Rproxy em cima pode levar até 50 000 visitantes únicos por dia com páginas lisas para todos .

A mudança do Apache para LiteSpeed ??nos ajudou muito. Além de: configurações de Edição MySQL, instalação Fooman Speedster (módulo para comprimir / combinar js e arquivos CSS), e instalar APC. Magento também publicou um livro branco sobre como obter o melhor desempenho da edição de empresa, mas é igualmente aplicável às outras versões: http://www.magentocommerce.com/whitepaper/

Existem muitas razões pelas quais seu carrinho de compras Magento podem ser lento, mas sem desculpas pois há uma variedade de maneiras para eleviate o problema e torná-lo muito danado rápido. Permitindo 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 irá determinar a velocidade de sua loja. Mais dicas e uma explicação melhor aqui http://www.interactone.com/ how-to-speed-up-magento /

Magento é muito lento porque o projeto de banco de dados não é muito bom. O código é uma bagunça e muito difícil de atualizar e otimizar. Assim, todas as otimizações são feitas através de cache em vez de código.

Por outro lado. É uma loja virtual com um monte de ferramentas. Então, se você precisa de uma loja virtual flexível apenas comprar um servidor muito poderosa e você estará ok.

Quando eu instalado pela primeira vez eu tive páginas que estavam a tomar 30 segundos para carregar. Meu servidor não foi maxed para fora na RAM ou processador, então eu não sabia o que fazer. Olhando para o painel net do Firebug que estava carregando cerca de 100 arquivos por página, e cada um tomou um longo tempo para se conectar. Depois de instalar speedster fooman eo gzip nas cargas htaccess vezes eram até 3 segundos, como se tivessem sido em outros carrinhos de compras no meu servidor.

Ele também virá para baixo a funcionalidade versus desempenho.

desempenho

Raw é obtido usando nginx, php-fpm, memcached, apc e um servidor projetado adequada.

A funcionalidade como plesk e desempenho magento poderia ser gerido por tomar toda a infra-estrutura em perspectiva ao projetar uma nuvem desempenho magento.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top