7 Dicas para otimizar seu Magento2
Várias dicas de como otimizar seu Magento 2 para produção, confira os truques de performance que envolvem admin, PHP e MySQL.
Vejo várias pessoas reclamando da velocidade do Magento 2 para colocar uma loja em produção (termo utilizado quando a loja esta apta para vendas), quando eu verifico o problema normalmente as lojas não estão seguindo as recomendações básicas para otimização, por conta disso eu trouxe hoje para vocês dicas de como otimizar seu Magento 2 .
1 - Configurações do servidor
As seguintes configurações devem ser aplicadas ao seu servidor de produção e estão ordenadas por impacto de performance.
- Varnish cache
- PHP 7
- Use Solr e Solr Search Adapter (Apenas na versão Enterprise)
- Nginx e PHP-FPM
Para implementação em multi-server ou para lojas que planejam escalar seu negócio é recomendado:
- Redis para sessões (para Magento maior que 2.0.6)
- Uma instância Redis separada para seu cache padrão
- Não use essa instância para Page Cache
2 - Otimizando seu Composer
Após executar o comando php bin/magento setup:di:compile para gerar as classes, use seu composer para otimizar o autoloader. Execute o seguinte comando para gerar uma um mapa de classes otimizado para o composer que suporta um rápido auto-loading.
composer dump-autoload -o
3 - PHP no servidor
É recomendado também editar seu PHP OPCache para o máximo de performance, para isso edite seu arquivo opcache.ini.
opcache.enable_cli=1
opcache.memory_consumption=512
opcache.max_accelerated_files=100000
opcache.validate_timestamps=0
opcache.consistency_checks=0
Mas caso você tenha pouca memória no server e também não tenha muitas customizações e extensões, então você pode trocar essas duas configurações abaixo para obter o mesmo resultado em desempenho.
opcache.memory_consumption=64
opcache.max_accelerated_files=60000
4 - Perfomance do Magento 2
Ative essas configurações abaixo para obter um desempenho maior na resposta da instância que está instalada seu Magento 2.
Stores -> Configuration -> Advanced -> Developer
Nessa rota acima altere as seguintes opções:
Stores -> Configuration -> Sales -> Sales Emails
Altere essa configuração abaixo para ativar o modo assíncrono.
Stores -> Index Management
Altere todos os indices para o modo Update on Schedule.
5 - MySQL e Index no servidor
No Magento 2.2 você pode customizar a maneira como ele executa o processo de reindexação, por exemplo, se vocês estiver preparando uma loja para um cliente B2B de médio porte pode substituir o valor da variável batchRowsCount em app/code/Magento/catalog/etc/di.xml de 5000 para 1000 e dessa maneira diminuir o tempo de uma indexação completa de 4 horas para 2 horas, é necessário mudar a configuração do seu MySQL também editando as duas variáveis TMP_TABLE_SIZE e MAX_HEAP_TABLE_SIZE (por padrão são 16M as duas) para um valor maior, isso resultará em um uso maior de memória do seu servidor.
6 - Limite de memória
O Magento 2 vem com um limite de memória em dois arquivos o .user.ini para versões mais novas e no .htaccess, ambos ficam localizados na raiz da instalação, para aumentar o limite de memória basta usar o Control+F e procurar por memory_limit e então colocar um 2 na frente do limite existente, dessa maneira ficará 2768M.
7 - Modo de produção
Executando o comando abaixo é possível otimizar a maneira como o Magento 2 efetua o seu processamento, voltando sua performance para produção, para isso execute o comando abaixo:
php bin/magento deploy:mode:set production
Gostou das dicas? Tem mais sugestões de performance? Então deixe sua sua sugestão e opinião nos comentários abaixo.