Magento é uma plataforma de comércio eletrônico extremamente robusta e, consequentemente, demanda recursos consideráveis do servidor. O tempo que o usuário vai ficar na página, o tamanho das imagens que você utiliza, tudo isso acaba consumindo recursos. Um simples site em Magento vai apenas enviar e receber dados dos clientes. Já uma loja do tipo leilão virtual vai enviar e receber constantemente muitos dados dos usuários.
Este tipo de abertura de comunicação exige uma atualização de dados do servidor a cada segundo. Por isso é importante que você utilize alguns recursos de otimização para diminuir a demanda exigida do servidor, aumentando ainda mais a performance do seu site!
Módulos
Você deve analisar se os demais módulos que estão sendo carregados realmente estão sendo usados. Caso contrário, simplesmente os desabilite. Isso deve ser feito para que a cada requisição o seu Apache não utilize recursos desnecessários do servidor, alocando mais memória do que realmente deveria utilizar e consumindo mais CPU do que deveria.
O Magento exige alguns módulos do Apache para o seu funcionamento. Os principais são:
• expires_module
• deflate_module
• mime_module
• dir_module
• rewrite_module
• authz_host_module
• authz_user_module
• file_cache_module
• authn_alias_module
• mime_magic_module
• log_config_module
• headers_module
• alias_module
• setenvif_module
• autoindex_module
• negotiation_module
• suexec_module
Cache no Magento
O Magento conta com um sistema de gerenciamento de cache interno, a qual por padrão não esta ativado, você deve ativa-lo, tornando assim menos pesado para o servidor o seu site, visto que não será necessario carregar o conteudo estatico do site diversas vezes, mantendo ele em cache.
O gerenciamento de cache do Magento fica em Sistema -> Gerenciamento de Cache no seu painel de administração. Você também pode apagar todas as pastas e arquivos que estão em /var/cache e /var/sessions .
Há também outros tipos de cache que são recomendáveis e que tornarão sua loja mais leve, como no apache a utilização do modulo Opcache, que irá pré-compilar scripts PHP e os armazenar em memória e também a utilização de cache no banco de dados Mysql Otimizando os parâmetros Query_cache_size e Query_cache_limit conforme a infraestrutura de seu servidor Mysql.
Tratamento de Conexões e Requisições
Um ponto crucial na otimização do Apache em seu servidor é a configuração correta dos parâmetros responsáveis por determinar como o webserver irá tratar as requisições do site. Você deve se concentrar nos seguintes parâmetros:
• MaxClients: controla a quantidade máxima de processos do Apache que poderão ser executadas pelo sistema operacional. Os casos variam, mas um exemplo genérico de configuração para esse parâmetro é de 150 para cada 1GB de RAM. Atenção: não considere o valor total de sua RAM instalada pois o servidor irá rodar outros processos que também utilizam memória. Então, se o seu servidor possui apenas 1GB de RAM coloque um valor entre 60 e 100 para evitar problemas com estouro de memória;
• KeepAlive: é importante manter esse parâmetro como ON pois é ele que garante que várias requisições sejam processadas dentro da mesma conexão, economizando recursos do servidor;
• MaxKeepAliveRequests: indica quantas requisições devem ser tratadas por requisição. Um bom valor é 2000, mas novamente isso depende da sua quantidade de memória;
• KeepAliveTimeout: aqui você informa o número de segundos que a próxima requisição do cliente deve esperar para ser processada. Não informe uma valor muito alto para não deixar as requisições esperando demais na fila. Valor ideal: 15. Existem outros parâmetros do Apache mas alterando apenas esses parâmetros você já terá um bom resultado em performance.
.htaccess
O arquivo .htaccess padrão do Magento possui praticamente tudo sobre aumento de performance, mas todas essas configurações vêm comentadas. A primeira delas e com certeza a mais importante é a compressão de saída ou Output Compression.
Nesse ponto é feito um uso bastante intensivo do mod_deflate do Apache para compressão de arquivos texto/html, css e javascript antes de enviá-los ao navegador. Isto irá fazer com que o download seja menor e como consequência baixado mais rapidamente.
Outro recurso é ativar a expiração de cabeçalhos ouExpires Headers que faz uso de rotinas do mod_expires do Apache. Ativar esse recurso informa aos navegadores quanto tempo os componentes de uma página (imagens, CSS, etc) devem ficar em cache.
Por último, você deve desabilitar as ETags. Esse recurso é utilizados pelos navegadores para validar componentes em cache de uma página em visitas futuras, porém isso compromete bastante a performance de um site.
Admin
Muitos recursos presentes no painel administrativo do Magento são eficazes no aumento da performance de uma loja Magento.
Indexação: Essa é uma forma de encontrar maior segurança e agilidade as informações armazenadas pelo sistema. Procure manter sempre as informações indexadas no seu Gerenciador de Índices.
Combinação de arquivos CSS e JS: você encontra este recurso acessando Sistema -> Configuração -> Desenvolvedor nas abas Configurações de Javascript e Configurações de CSS. Em ambas basta atribuir o valor Sim aos campos Mesclar Arquivos Javascript e Mesclar Arquivos CSS respectivamente. Salve as configurações e limpe o cache. Todos os arquivos CSS e JS serão combinados em apenas um arquivo e todos os JS. Com isso o navegador fará uma única requisição para cada tipo de conteúdo.
Habilitar o catálogo flat de produtos e categorias: Essa configuração irá criar uma série de tabelas no banco de dados onde as informações de produtos e categorias estarão organizadas de forma a serem obtidas mais rapidamente pelo sistema consumindo o mínimo de recursos do servidor possíveis.
Para visualizá-la vá em Sistema -> Configuração -> Catálogo e na aba Frontend marque Sim nas opções Usar Catálogo de Categoria Unificado e Usar Catálogo de Produtos Unificado. Após salvar as configurações limpe o cache da sua loja.
Compilação: com ele você cria a estrutura de arquivos do Magento de forma que não seja necessário ao interpretador de códigos (PHP) navegar por várias pastas até encontrar o arquivo de sistema necessário, pois tudo estará em uma única pasta. Isso irá reduzir absurdamente o número de leituras ao sistema de arquivos e você acaba ganhando em performance e economia de recursos do servidor.
CDN (Content Delivery Network): recurso exclusivo para entrega de arquivos estáticos – imagens, CSS, JS, etc. Utilizando esse tipo de recurso você irá ter uma resposta mais rápida do domínio do site já que essas requisições serão feitas a um outro domínio. Isso diminui o tempo de download da sua página (html) entregando o conteúdo mais rapidamente ao usuário.
Manutenção do Banco de Dados
O banco de dados pesado pode ser um dos responsáveis por tornar os sites Magento lentos e difícil de usar para enviar/recuperar dados. Para reduzir o tamanho do banco de dados você deve:
Logs de banco de dados – o Magento utiliza várias tabelas para registro. Embora o registro seja fundamental para você saber o que existe na sua loja e o que está acontecendo, os logs podem se tornar grandes muito rapidamente. Por isso, fazer a manutenção regularmente pode ser bem útil.
Abaixo as tabelas para registro:
log_customer
log_visitor
log_visitor_info
log_url
log_url_info
log_quote
report_viewed_product_index
report_compared_product_index
report_event
catalog_compare_item
Limpeza de registros do banco de dados usando Magento Admin
Vá em Sistema > Configuração. À esquerda acesse a opção Avançado – Sistema – Limpar log. Mude “Ativar Log de Limpeza” para SIM, configure o “Salvar Log” para 14 dias e salve as alterações.
Certifique-se de fazer backup de seu banco de dados antes de realizar as alterações.
Ativar o compilador que vem com o Magento por padrão: acesse no painel administrativo a opção Sistema -> Ferramentas -> Compilação. Basta clicar em Ativar -> Processo Run Compilation. Esta opção compila todos os arquivos de instalação do Magento e cria um único caminho de inclusão. Isso pode acelerar as páginas entre 25% e 50%.
Habilite apenas o que vai usar: em alguns pontos do sistema o Magento vem pré configurado de fábrica, como por exemplo no uso de moedas pelo sistema. Se você vai usar apenas a moeda Real Brasileiro, não tem por que carregar centenas de moedas na inicialização da variável moedas.
Muitos lojistas tem pressa em iniciar as atividades de sua loja virtual e podem acabar esquecendo que é preciso investir em performance. Uma loja bem configurada pode conseguir uma performance infinitamente superior. Certamente você não quer que o visitante tenha que esperar a página carregar para poder visualizar os produtos que ele procura!
O que você achou deste conteúdo?