O site na nuvem está lento
Este artigo fornece recomendações sobre como melhorar o desempenho do seu Adobe Commerce no site de infraestrutura em nuvem com cargas de tráfego pesado e como reduzir essa carga.
Versões e edições afetadas
- Adobe Commerce na infraestrutura em nuvem, todas as versões
Problema
Etapas a serem reproduzidas
- Visite sua loja da Adobe Commerce.
- Navegar em uma página de categoria.
- Adicione um produto ao carrinho.
Resultado esperado
O site é responsivo e adicionar um produto ao carrinho é rápido.
Resultado real
O site está lento ou as páginas de categoria são rápidas, mas a página do carrinho está lenta.
Etapas e soluções de depuração
Execute as seguintes etapas para rastrear o motivo do desempenho lento e corrigi-lo. Você pode alternar a primeira e a segunda etapas, mas prosseguir para o bloqueio de IPs somente se a otimização das configurações de cache não ajudar.
- Verifique a taxa de ocorrência do cache para as páginas com alto tráfego e reduza a quantidade de dados altamente atualizados.
- Verifique a taxa geral de acertos do cache do site e a configuração geral do cache/Fastly.
- Identifique os clientes da Web que estão causando a carga alta do servidor e bloqueie os IPs que estão causando a carga alta.
Os parágrafos a seguir fornecem mais detalhes para cada etapa.
Etapa 1: verifique a taxa de ocorrência do cache para as páginas com alto tráfego
A primeira etapa para corrigir um site atolado em tráfego pesado é garantir que as páginas com o tráfego mais pesado, como a página inicial da loja e as páginas de categoria de nível superior, estejam sendo armazenadas em cache corretamente.
Você pode descobrir as taxas de ocorrência do cache para essas páginas revisando os X-Cache
cabeçalhos HTTP usando cURL, conforme descrito em Verificando o cache usando cURL na documentação do Fastly. Ou verifique os mesmos cabeçalhos usando a guia Rede na barra de ferramentas do desenvolvedor do seu navegador da Web favorito.
O Fastly geralmente respeita os cabeçalhos de resposta provenientes do aplicativo; no entanto, se os cabeçalhos estiverem definidos como "não armazenar em cache" e para a página "expirar no passado", o Fastly não poderá armazenar a página em cache.
Solução de problemas para páginas com alto tráfego
Se a página de índice tiver uma taxa de ocorrência baixa, você poderá corrigi-la reduzindo a quantidade de dados altamente atualizados presentes nessa página.
Etapa 2: verificar a taxa geral de acertos do cache do site
Para verificar a taxa geral de acertos do cache:
-
Obtenha credenciais do Fastly para seu Adobe Commerce no ambiente de infraestrutura na nuvem.
-
Execute o seguinte comando cURL do Linux/macOS para verificar a taxa de ocorrência do site nos últimos 30 minutos, substituindo e pelos valores das credenciais do Fastly:
curl -H "Fastly-Key: " https://api.fastly.com/stats/service//field/hit_ratio?by=minute | json_pp
Você também pode verificar o histórico das taxas de ocorrência no último dia ou mês alterando a opção de consulta de intervalo de tempo de
?by=minute
para?by=hour
ou?by=day
. Para obter mais informações sobre como obter as estatísticas do cache do Fastly, consulte Opções de Consulta na documentação do Fastly.A opção
| json_pp
imprime a saída da resposta JSON usando o utilitáriojson_pp
. Se você receber um erro 'json_pp not found', instale o utilitáriojson_pp
ou use outra ferramenta de linha de comando para obter uma impressão JSON. Como alternativa, exclua o parâmetro| json_pp
e execute o comando novamente. A saída da resposta JSON não está formatada, mas você pode executá-la por meio de um beautificador JSON para limpá-la.
Uma taxa de ocorrência acima de 0,90 ou 90% indica que o cache de página inteira está funcionando.
Uma taxa de ocorrência abaixo de 0,85 ou 85% pode indicar um problema de configuração do site ou você pode ter uma extensão de terceiros instalada que não permite que o conteúdo seja armazenado em cache.
Solução de problemas da taxa geral de acertos do cache
- Usando as estatísticas de taxa de ocorrência por hora e por dia, identifique quando a taxa de ocorrência começou a diminuir. Se a taxa de ocorrência cair repentinamente ao mesmo tempo em que você implantou uma alteração no site, considere reverter a alteração até que o carregamento do site diminua.
- Verifique a configuração no Administrador do Commerce, em Lojas > Configuração > Avançado > Sistema > Cache de Página Inteira. Verifique se o valor de TTL para conteúdo público não está definido como muito baixo.
- Verifique se você carregou os trechos de VCL.
- Se você usar trechos de VCL personalizados, depure-os para o uso correto das ações "passar" ou "pipe": eles devem ser usados com cuidado e, no mínimo, usados com algum tipo de condição. Para obter mais dicas, consulte Custom Fastly VCL snippets na documentação do desenvolvedor.
Etapa 3: identificar os sites que causam a alta carga do servidor
Você pode usar qualquer um dos métodos a seguir para obter informações sobre os endereços IP que acessam sua loja da Adobe Commerce.
- Verifique os logs de acesso HTTP por meio de uma sessão SSH.
- Entre em contato com o suporte da Adobe Commerce para solicitar uma lista de endereços IP que causam grande carga no site.
Verificar os logs de acesso HTTP
Para exibir o log de acesso do site, execute o seguinte comando no ambiente de desenvolvimento local:
magento-cloud log access
Exibir mais linhas com o
--lines
, por exemplo:
magento-cloud log access --lines=500
Você pode visualizar esse log e verificar se uma grande parte das solicitações vem de um endereço IP específico. Outra maneira é usar o awk
, sort
e uniq
para contar automaticamente os endereços IP mais frequentes no log, como o seguinte:
magento-cloud log access --lines 2000 | awk '{print $1}' | sort | uniq -c | sort
-nr
Se a variável
magento-cloud log
comando não funciona, você pode se conectar ao servidor remoto com SSH e verificar o arquivo de log em /var/log/access.log
Depois de identificar os endereços IP que estão causando grande carga no servidor, você pode bloqueá-los configurando uma lista de bloqueios de IP no painel Administrador do Commerce, em Lojas > Configuração > AVANÇADO > Sistema > Cache de Página Inteira > Configuração Rápida > Bloqueio.
Se não conseguir acessar o Administrador devido à grande carga, você poderá usar a API do Fastly para configurar as regras de bloqueio:
-
Crie a ACL conforme descrito no documento Trabalho com ACLs usando a API do Fastly.
-
Na seção
recv
, crie um trecho de VCL com o seguinte conteúdo, tendo substituído ACL_NAME_GOES_HERE pelo nome da ACL criada na etapa anterior:code language-none if( req.http.Fastly-Client-IP ~ ACL_NAME_GOES_HERE ) { error 403 "Forbidden"; }
Para obter mais informações sobre o bloqueio de endereços IP, consulte o Guia do módulo do Fastly Adobe Commerce no GitHub.