Magento 2: 2 dicas para acelerar seu ambiente de desenvolvimento
Desenvolvimento, Magento 2
Atualizado em 17 de setembro de 2020
A maioria dos desenvolvedores experientes se assusta com performance do Magento 2 no ambiente local de desenvolvimento.
Como mostrado aqui no Magenteiro anteriormente, o Magento 2 com XDebug em um ambiente local é terrivelmente mais lento que um ambiente com Magento 1, mesmo que com a metade de memória Ram.
E como prometido, hoje vou compartilhar algumas considerações que podem ajudar bastante você na hora de desenvolver para Magento 2.
Desabilitar XDebug
O XDebug é uma ferramente extremamente útil para debugar códigos PHP de qualquer espécie. No entanto, quando habilitada afeta drasticamente o carregamento de uma loja Magento 2 em ambiente local. Veja só a performance da loja do curso de Magento 2 com Sample data:
Magento 2.2.4 + 4Gb Ram + PHP 7.1.12 (MAMP Pro c/ Apache s/ opcache)
Página de categoria após limpeza de cache (cache:clean)
Com XDebug: 30.87s
Sem XDebug: 22.24s
Mesmo que você não esteja com o XDebug ativo, se a extensão for carregada a performance da loja é significantemente afetada.
É importante ressaltar que nos testes realizados anteriormente o Magento usado era o 2.2.2 e não o 2.2.4. Pude perceber mudanças significativas de performance no ambiente de desenvolvimento. Portanto, se você puder, atualize seu Magento.
Redis
O Redis com Magento 2 permite que coloquemos dados de sessão e de cache salvos direto em memória, ao invés de salvar no disco (padrão) ou em banco de dados. E isso faz muita diferença.
A instalação do Redis em si é bastante simples e fácil de ser encontrada na internet. Uma vez instalado, basta digitar redis-server
para iniciar o servidor no ambiente local.
A configuração do Redis no Magento é bastante simples e pode ser feita direto no arquivo app/etc/env.php
do seu Magento, da seguinte forma:
Magento Cache com Redis
Adicione o bloco abaixo antes da linha 'cache_types'
no app/etc/env.php
:
'cache' => array ( 'frontend' => array ( 'default' => array ( 'backend' => 'Cm_Cache_Backend_Redis', 'backend_options' => array ( 'server' => '127.0.0.1', 'port' => '6379', 'database' => 3, //database number - um numero ainda nao usado no seu redis ), ), 'page_cache' => array ( 'backend' => 'Cm_Cache_Backend_Redis', 'backend_options' => array ( 'server' => '127.0.0.1', 'port' => '6379', 'database' => '4', //database number - um numero ainda nao usado no seu redis 'compress_data' => '0', ), ), ), ),
'cache' => [ 'frontend' => [ 'default' => [ 'backend' => 'Cm_Cache_Backend_Redis', 'backend_options' => [ 'server' => '127.0.0.1', 'port' => '6379', 'database' => 3, //database number - um numero ainda nao usado no seu redis ],], 'page_cache' => [ 'backend' => 'Cm_Cache_Backend_Redis', 'backend_options' => [ 'server' => '127.0.0.1', 'port' => '6379', 'database' => '4', //database number - um numero ainda nao usado no seu redis 'compress_data' => '0', ], ], ], ],
Nossa página de referência agora com Redis Cache: 20.96s.
No segundo load: 7.25s
Magento Session com Redis
Dentro do array 'session'
, adicione o trecho/array abaixo antes ou após a linha 'save'=>'files'
e mude o valor 'files'
para 'redis'
:
'redis' => array ( 'host' => '127.0.0.1', 'port' => '6379', 'password' => '', 'timeout' => '2.5', 'persistent_identifier' => '', 'database' => '2', 'compression_threshold' => '2048', 'compression_library' => 'gzip', 'log_level' => '1', 'max_concurrency' => '6', 'break_after_frontend' => '5', 'break_after_adminhtml' => '30', 'first_lifetime' => '600', 'bot_first_lifetime' => '60', 'bot_lifetime' => '7200', 'disable_locking' => '0', 'min_lifetime' => '60', 'max_lifetime' => '2592000', ),
'redis' => [ 'host' => '127.0.0.1', 'port' => '6379', 'password' => '', 'timeout' => '2.5', 'persistent_identifier' => '', 'database' => '2', 'compression_threshold' => '2048', 'compression_library' => 'gzip', 'log_level' => '1', 'max_concurrency' => '6', 'break_after_frontend' => '5', 'break_after_adminhtml' => '30', 'first_lifetime' => '600', 'bot_first_lifetime' => '60', 'bot_lifetime' => '7200', 'disable_locking' => '0', 'min_lifetime' => '60', 'max_lifetime' => '2592000', ],
Validando
E para ter certeza que está tudo certo:
- Entramos no nosso redis com o comando
redis-cli
- Selecionamos um database (2, 3 ou 4 como nosso exemplo):
select 2
- Vemos se há valores salvos lá:
keys *
Essas e outras dicas você encontra no Curso de Magento 2 do Magenteiro. Te espero lá.
- Recorrência no WooCommerce Sem Plugins Pagos - 28 de janeiro de 2024
- Chargeback. O que é, e como se livrar deles. - 19 de dezembro de 2023
- Integração PagBank Nova Geração – Um guia rápido - 31 de outubro de 2023
Deixe seu comentário
[fbcomments url="https://www.magenteiro.com/blog/magento-2/acelerando-seu-ambiente-de-desenvolvimento/"]