Cursos Magento

Magento 2.4 vs. 2.3 – Teste de Performance

Publicado em 06 de agosto de 2020

Como vimos aqui no Magenteiro, o Magento 2.4 trouxe uma série de melhorias de performance. Boa parte delas pelo simples fato de passar a suportar tecnologias mais recentes como PHP 7.4, MySQL 8 e ElasticSearch 7.

Mas será que vale a pena?

No Magento 2: O Curso você viu o que conseguimos fazer com um Magento 2.3 e 42 mil produtos em uma hospedagem de $10.

E com o 2.4? Será que melhora tanto assim?

Os testes

Minha primeira boa impressão se deu ao atualizar a loja demo do módulo PagSeguro para Magento 2. A sensação de performance tanto no ambiente local quanto em produção foi bem significativa.

Mas até então foi só uma sensação, sem muita comparação nem números para comparar.

Hoje enquanto escrevo este artigo, atualizarei a loja de estudos usada pelos alunos do Magenteiro.

Esta é a mesma loja usada no teste dos 42 mil produtos acima. Ela está hospedada em uma instância única de $10 na Digital Ocean e as configurações são pelo menos 50% inferior ao mínimo recomendável para uma loja em produção.

  • 1 vCPU
  • 2 GB Ram + 10 Gb Swap
  • 50 GB Disco SSD
  • Ubuntu Server 18.04 LTS
  • Memory limit do PHP: 1G
  • Opcache ativo
  • Redis para sessao e cache

Durante os testes e atualizações o cron será desativado, e o acesso à loja será limitado apenas à ip’s específicos. Desta forma evitarei que os alunos do Magenteiro influenciem nos testes afetando a performance da loja.

Faremos os testes levando em consideração o tempo de carregamento de algumas páginas usando o Webpagetest.org, a partir de servidores localizados na mesma região.

O tempo exibido nos testes será o de carregamento total, e não do DOM Load, ou seja, na prática a percepção de carregamento do ponto de vista dos usuários é menor que os números informados aqui. Clique nos links para ver mais detalhes.

Testes com Magento 2.3

Antes de atualizar nossa loja para o Magento 2.4, e realizar outras mudanças, nossa loja de testes está desta forma:

  • Magento 2.3.5 Open Source
  • PHP 7.1.3
  • Opcache ativo
  • Banco de dados MariaDB 10.1

Outro ponto interessante a ser observado (com o cron ativo e os alunos acessando a loja) é o consumo de CPU. Os momentos de pico indicam os momentos que a loja é reiniciada (a cada 6 horas). Em geral, o consumo de está na casa dos 30%.

Vamos aos resultados atuais com Webpagetest.

PáginaPrimeira visitaSegunda visitaDetalhes
Home2.054 s0.936 sLink
Categoria2.840 s0.972 sLink
Busca2.104 s1.609 sLink

Testes com Magento 2.4

Depois de tudo atualizado, eis o que temos aqui:

  • Magento 2.4.0 Open Source
  • PHP 7.4.8
  • OpCache ativo
  • Banco de dados MariaDB 10.4
  • ElasticSearch 7.7

E os nossos primeiros resultados:

PáginaPrimeira visitaSegunda visitaDetalhes
Home2.423 s0.973 sLink
Categoria2.622 s1.199 sLink
Busca1.073 s0.967 sLink

Ué? Só a busca melhorou?

Visualmente completo

Nos testes acima consideramos somente o que a ferramenta chama de Carregamento completo (Fully Loaded), que é medido do momento inicial da navegação até termos 2 segundos sem atividade de rede. Isso geralmente faz com que JavaScripts que são executados depois da página ter carregado afetem o resultado final.

No entanto, como usuários, entendemos que a página está completamente carregada quando todos os elementos visuais terminam de carregar. Aí a situação mudou um pouco.

Em todos os testes o Magento 2.4.0 se mostrou ligeiramente melhor que seu antecessor.

Conclusão

O Magento 2.4.0 (assim como toda nova versão) trouxe uma série de correções e melhorias de segurança que não podem ser ignoradas.

Embora o teste de performance acima não pareça nos dar grandes incentivos para migrar, é importante notar que:

  • Testes de performance como este podem ser impactados por fatores externos de rede em ambos os lados. E isso geralmente acontece.
  • Os testes foram feitos em diferentes horas do dia
  • Atualizações de softwares como PHP trazem outros parâmetros de configuração que eventualmente podem ter sido negligenciados
  • O servidor não atende aos requisitos recomendados para executar nenhuma das versões
  • O ElasticSearch, Banco de Dados, RabbitMq e Redis estão todos na mesma instância, o que não é recomendável.
  • Devemos levar em consideração as melhorias e correções de segurança.

Pessoalmente, a sensação de uma significativa melhora de performance foi evidente. Ou seja, apesar dos números acima não serem tão bons quanto gostaríamos, acredito que outros testes deveriam ser feitos.

No ambiente local de desenvolvimento, onde há menos variáveis de rede envolvidas, a melhoria se mostra mais significativa, em especial durante tarefas que envolvem manutenção de código.

De uma forma ou de outra, atualizações de segurança nunca devem ser ignoradas, mesmo que seja através dos patches de correção. Se não está convencido(a), veja o artigo hackeando uma loja magento 2 em segundos.

Quando migrar não esqueça de compartilhar seus resultados aqui nos comentários.

 

 

Últimos posts por Ricardo Martins (exibir todos)
Assuntos: | |
Comentários

Deixe seu comentário

[fbcomments url="https://www.magenteiro.com/blog/magento-2/magento24-vs-23/"]