A ferramenta APM da Kinsta é uma ferramenta poderosa para solucionar problemas em seu site. Este artigo irá levá-lo através de alguns cenários diferentes para solucionar problemas de desempenho em um site usando a ferramenta APM para investigar e analisar os problemas.

Se você não estiver familiarizado com as configurações e terminologia na Ferramenta APM, confira nosso guia sobre como usar a Ferramenta APM da Kinsta.

Como começar

Antes de se aprofundar no uso da ferramenta APM para solucionar um problema, há alguns passos que você precisará seguir, independentemente do problema:

  1. Certifique-se de que você pode recriar o problema se ele não estiver acontecendo no momento. Procure padrões de quando o problema ocorre ou se ações específicas parecem desencadear o problema (por exemplo, editar uma página, adicionar um produto a um carrinho de eCommerce, carregar imagens, etc.).
  2. Ative a ferramenta APM no MyKinsta e espere por alguns minutos para coletar dados. A ferramenta APM só pode gravar e analisar dados enquanto estiver habilitada.
  3. Assim que a ferramenta APM começar a coletar dados, recrie o problema para registrar as informações necessárias.
  4. Se Redis estiver habilitado em seu site, certifique-se de usar o plugin WP Redis ou Redis Object Cache (mas não ambos). Talvez não possamos coletar e mostrar dados Redis de outros plugins na ferramenta APM da Kinsta.

Analisar páginas ou ações com carregamento lento

Neste exemplo, as páginas são carregadas rapidamente, mas tudo se torna mais lento quando adiciona qualquer produto ao carrinho, seja ele um produto variável ou simples.

Após adicionar alguns produtos ao carrinho, nós damos uma olhada nos resultados em APM (Sites WordPress > nomedosite > APM) e vemos que a transação /single-product está no topo da lista das transações mais lentas, com uma duração máxima de mais de 5 segundos e uma duração média de mais de 2 segundos.

Selecione a transação de um único produto no topo da lista de transações mais lentas do APM.
Selecione a transação de um único produto no topo da lista de transações mais lentas do APM.

Ao clicar nessa transação, é aberto o modal/pop-up de amostras de transação, onde podemos selecionar a transação mais lenta (primeira da lista) para ver mais detalhes.

Selecione a amostra mais lenta na lista de amostras de transações.
Selecione a amostra mais lenta na lista de amostras de transações.

Isso nos leva à linha do tempo de rastreamento da transação, onde podemos classificar as transações por Duração (tempo) para ver quais processos nesta amostra de transação são os mais lentos. Aqui, podemos ver que o processo update_card_payment é o mais lento na linha do tempo, ocupando 5.002,21 ms de uma transação de 5.535,61 ms.

O intervalo de pagamento update_card_payment ocupa 5.002,21 ms da transação.
O intervalo de pagamento update_card_payment ocupa 5.002,21 ms da transação.

Clicando nesse span, abre-se o modal/popup de Detalhes do Span, que inclui o rastreamento de pilha (stack trace) do Span.

Veja os detalhes do vão, incluindo o stack trace.
Veja os detalhes do vão, incluindo o stack trace.

Podemos ver que a ação do hook do WordPress: action:woocommerce_add_to_cart está associada a este span nos detalhes do span.

Existem algumas maneiras de rastrear qual plugin ou tema está associado a isso.

Se você estiver confortável com a linha de comando, pode usar o comando grep para pesquisar a função update_card_payment e ver quais arquivos de plugin ou tema contêm essa função.

Alternativamente, você pode olhar para a guia WordPress em Resultados de Monitoramento e procurar por um plugin com uma Duração total e Duração máxima semelhantes. Provavelmente estará no topo da lista.

Veja os plugins mais lentos do WordPress na aba WordPress em Resultados do Monitoramento.
Veja os plugins mais lentos do WordPress na aba WordPress em Resultados do Monitoramento.

Ao selecionar o plugin na lista dos plugins WordPress mais lentos, você pode confirmar a correspondência. Se o plugin não estiver listado na coluna dos plugins WordPress no pop-up da Amostra de transação, selecione a amostra de transação mais lenta para visualizar a linha do tempo de rastreamento da transação.

Selecione a amostra de transação mais lenta para visualizar a linha do tempo de rastreamento da transação.
Selecione a amostra de transação mais lenta para visualizar a linha do tempo de rastreamento da transação.

Ordene a linha do tempo por Duração e procure pelo mesmo nome de função (por exemplo, update_card_payment) para estar no topo ou perto do topo da lista quando ordenado.

Ordenando a linha do tempo por Duração e procurar o nome da função na coluna Spans.
Ordenando a linha do tempo por Duração e procurar o nome da função na coluna Spans.

Investigando lentidão geral

A lentidão geral de um site geralmente se deve a um plugin e é um dos primeiros lugares que você deve verificar. Se um plugin está causando a lentidão do seu site, isso pode geralmente ser identificado visualizando a aba WordPress (Sites WordPressnomedosite > APM > WordPress). Na captura de tela abaixo, observe que a porcentagem de duração total do plugin destacado é superior a 98%, e a duração máxima e média são bastante altas.

Veja a porcentagem de duração total de um plugin, duração máxima e duração média.
Veja a porcentagem de duração total de um plugin, duração máxima e duração média.

Isto indica que este plugin é a fonte mais provável de lentidão geral no site. Para confirmar isso, podemos desativar o plugin, observar o desempenho do site e verificar os resultados na ferramenta APM mais uma vez depois que dados suficientes tiverem sido coletados. Se você tem certeza que o plugin está configurado corretamente, mas continua a causar lentidão em seu site, recomendamos entrar em contato com o desenvolvedor do plugin para trabalhar com eles na resolução do problema.

Identifique problemas intermitentes de terceiros

As solicitações externas são solicitações HTTP feitas pelo site para outro servidor (de terceiros). Plugins ou temas geralmente fazem essas solicitações para carregar scripts ou folhas de estilo ou comunicação com uma API.

Ao solucionar um possível problema externo, é importante notar que a ferramenta APM registra transações externas lentas no lado do servidor. Muitas solicitações externas podem ser feitas de um site no lado do cliente, o que não seria registrado na ferramenta APM. Para investigar solicitações externas no lado do cliente, você precisará usar uma ferramenta como GTmetrix ou as ferramentas de desenvolvimento do seu navegador.

Para visualizar solicitações externas lentas, vá para a aba Externo em Resultados de Monitoramento para visualizar as Solicitações externas mais lentas. Neste exemplo, percebemos alguma lentidão ao fazer upload de imagens na biblioteca de mídia, com alguns uploads levando 5 minutos ou mais para serem concluídos.

Começamos olhando como são as solicitações externas quando não estamos fazendo nada além de fazer login no painel do WordPress. Antes de fazer upload de imagens na Biblioteca de mídia, as solicitações POST para wp-cron são as mais lentas, com duração máxima de 273,78 ms e duração total de 1.957,81 ms.

Pedidos externos mais lentos em APM.
Pedidos externos mais lentos em APM.

Quando carregamos várias imagens com tamanhos entre 3MB-17MB, leva vários minutos para aqueles que terminam de carregar. Olhando os pedidos externos novamente, vemos que POST pedidos para smushpro.wpmudev.com são os pedidos externos mais lentos, com duração máxima de 1.703,14 ms e duração total de 82.710,85 ms.

Atualização dos pedidos externos mais lentos após o upload e otimização das imagens.
Atualização dos pedidos externos mais lentos após o upload e otimização das imagens.

Clicar nessa transação abre o modal/pop-up de amostras de transação onde podemos selecionar a transação mais lenta (primeira da lista) para ver mais detalhes.

Selecione a amostra de transação mais lenta em solicitações externas.
Selecione a amostra de transação mais lenta em solicitações externas.

Isso nos leva à linha do tempo de rastreamento das transações, onde podemos classificar as transações por Duração (tempo) para ver quais spans são os mais lentos. Aqui podemos ver que várias solicitações POST para smushpro.wpmudev.com são as mais lentas nesta amostra, com um total dessas solicitações POST ocupando 6.712,64 ms de uma transação de 7.168,58 ms.

Visualizando todos os pedidos para smushpro.wpmudev.com em uma linha de tempo de rastreamento de transação.
Visualizando todos os pedidos para smushpro.wpmudev.com em uma linha de tempo de rastreamento de transação.

Também podemos observar que a duração de cada solicitação varia significativamente, com a solicitação mais curta levando apenas 138,2 ms e a mais longa levando 1.703,14 ms. Portanto, enquanto o plugin Smush está otimizando nossas imagens, cada uma dessas imagens gera uma solicitação externa, o que pode retardar o site.

Neste caso, otimizar nossas imagens antes de fazer upload em vez de depender de um plugin para otimização de imagem reduziria significativamente nossas solicitações externas. Este é um daqueles casos em que precisaremos decidir o que é mais importante, conveniência ou desempenho do site. Podemos manter o plugin se estivermos bem com a lentidão necessária causada pelas solicitações externas. Se preferirmos ou precisarmos melhorar o desempenho do nosso site, remover o plugin e otimizar nossas imagens antes de fazer upload será a melhor opção.

Resumo

Com as estratégias mencionadas acima, você pode usar a ferramenta APM da Kinsta para solucionar problemas de desempenho em seu site. Embora cada situação e site sejam diferentes, você pode aplicar os métodos gerais de solução de problemas aqui para ajudá-lo ou a seu desenvolvedor a rastrear problemas de desempenho em seu site.