O Desempenho é fundamental! Notas sobre o desempenho Magento

O desempenho do Magento é fundamental.

Ao longo dos últimos meses, dedicamos uma parte significativa de recursos a diagnosticar e a optimizar o desempenho do Magento. Agora que a lista de funcionalidades do Magento 1.0 está praticamente concluída, teremos muito gosto em partilhar convosco algum do nosso trabalho e esforço que tem por objectivo um Magento rápido e furioso. Estamos muito entusiasmados com os resultados dos nossos testes.

Com funcionalidades tão complexas, a performance e a flexibilidade podem por vezes ser afectadas, e o Magento não é nenhuma excepção à regra. Mas existem ganhos em cada melhoria realizada, e começamos a ver resultados significativos na última versão. Abaixo está uma lista de algumas das melhorias no desempenho que foram introduzidas na última versão.

A partir dos nossos testes de desempenho constatamos que a última versão do Magento melhora o desempenho da versão 0.8.17420 por quase o dobro. Abaixo mostramos um gráfico de um dos testes de carregamento que corremos utilizando Apache Benchmark (ab) comparando as duas versões do Magento. Vimos resultados semelhantes no nosso teste e comparações entre as duas versões.


image

FVM (Faça você mesmo) Melhorias no desempenho

Enquanto continuamos a melhorar a performance do Magento, existem optimizações adicionais que os utilizadores Magento podem utilizar para melhorar o desempenho num ambiente de servidor simples


Exemplo my.cnf:


image

Hora de um Cluster?

Como qualquer revendedor onine sabe, um negócio em crescimento significa problemas em crescimento. Se a sua loja é um enorme sucesso, então precisa inevitavelmente de uma plataforma de hardware mais capaz, o que significa deixar o mundo de apenas um servidor e mudar-se para um ambiente cluster com dois ou mais servidores

Existem várias formas de o conseguir, mas um típico primeiro passo é adicionar mais servidores e coloca-los numa “load balancer”, que irá distribuir o carregamento pelos vários servidores. Este método é popular porque: (a) um servidor é mais barato que um servidor de base de dados; e (b) não existe limite para o número de servidores que pode adicionar

Nota: Uma limitação actual do Magento é que não existe nenhum método oficial de propagar as imagens do catálogo para cada “web node”. Se não está confortável para montar um ambiente deste tipo, então será melhor contratar um profissional.

Um segundo método envolve uma táctica de desempenho chamada “replicação de base de dados”. Ao utilizar a replicação, necessita de ter duas ou mais base de dados no seu “cluster”.  Uma será a “master” e as restantes serão chamadas de “slaves”. A “master” é a única base de dados que aceita qualquer tipo de consultas de escrita. Estas consultas de escrita são depois replicadas para cada um dos “slaves” em tempo real (ou muito próximo). A vantagem desta configuração é que o Magento pode enviar consultas de leitura para cada um dos servidores “slave”, guardando assim todas as consultas de escrita para a base de dados “master”. Uma base de dados é tradicionalmente um componente difícil de escalonar horizontalmente, por isso a replicação é um bom acordo

A configuração inicial para a replicação MySQL não está nos planos deste documento, mas podemos enviá-lo para os especialistas. Aqui está um tutorial que explica todos os detalhes.

Assim que a sua replicação MySQL estiver a funcionar, configurar o Magento para utilizar múltiplos servidores de base de dados é uma tarefa relativamente simples. O único ficheiro que necessita de editar é app/etc/local.xml. Um exemplo é mostrado abaixo. Como pode verificar, existem duas conexões de base de dados configuradas, uma chamada default_setup e outra chamada default_read. A conexão default_setup será utilizada para todas as consultas de escrita e a default_read para todas as consultas de leitura.

Exemplo app/etc/local.xml:
image

Este tópico apenas cobriu algumas das bem conhecidas tácticas para melhorar o desempenho de um site. Contudo, cada ambiente de cada site é diferente, por isso a maioria das vezes compensa contratar um profissional para o aconselhar sobre as melhores soluções possíveis para o seu caso. Mas se está confortável em ambientes Linux e confiante no que toca a ficheiros de configuração, experimente alguma das sugestões acima. Pode ser que tenha uma boa surpresa

Tem algumas ideias? Gostaríamos de ouvi-las. Deixe um comentário ou junte-se ao Grupo de Optimização do Desempenho do Magento.