La herramienta APM de Kinsta es una poderosa herramienta para solucionar los problemas de tu sitio web. Este artículo te llevará a través de algunos escenarios diferentes para la resolución de problemas de rendimiento en un sitio utilizando la herramienta APM para investigar y analizar los problemas.

Si no estás familiarizado con la configuración y la terminología de la herramienta APM, consulta nuestra guía sobre Cómo utilizar la herramienta APM de Kinsta.

¿Cómo empezar?

Antes de profundizar en el uso de la herramienta APM para solucionar un problema, hay algunos pasos que deberás dar, independientemente del problema:

  1. Asegúrate de que puedes recrear el problema si no está ocurriendo actualmente. Busca patrones de cuándo se produce el problema o si hay acciones específicas que parecen desencadenar el problema (por ejemplo, editar una página, añadir un producto a un carrito de comercio electrónico, subir imágenes, etc.).
  2. Habilita la herramienta APM en MyKinsta y dale unos minutos para que empiece a recoger datos. La herramienta APM solo puede registrar y analizar datos mientras está habilitada.
  3. Una vez que la herramienta APM comience a recopilar datos, vuelve a crear la incidencia para registrar la información necesaria.
  4. Si Redis está habilitado en tu sitio, asegúrate de utilizar el plugin WP Redis o Redis Object Cache (pero no ambos). Es posible que no podamos recoger y mostrar los datos de Redis de otros plugins en la herramienta APM de Kinsta.

Analizar las páginas o acciones de carga lenta

En este ejemplo, las páginas se cargan rápidamente, pero todo se ralentiza al añadir cualquier producto al carrito, ya sea un producto simple o variable.

Después de añadir unos cuantos productos al carrito, echamos un vistazo a los resultados en APM (Sitios de WordPress > nombre del sitio > APM) y vemos que la transacción /single-product encabeza la lista de transacciones más lentas, con una duración máxima de más de 5 segundos y una duración media de más de 2 segundos.

Selecciona la transacción de un solo producto que encabeza la lista de transacciones más lentas en APM.
Selecciona la transacción de un solo producto que encabeza la lista de transacciones más lentas en APM.

Al hacer clic en esa transacción, se abre el modal/pop-up de Muestras de Transacción, donde podemos seleccionar la transacción más lenta (la primera de la lista) para ver más detalles.

Selecciona la muestra más lenta en la lista de muestras de transacciones.
Selecciona la muestra más lenta en la lista de muestras de transacciones.

Esto nos lleva a la línea de tiempo de rastreo de transacciones, donde podemos ordenar las transacciones por Duración (tiempo) para ver qué procesos de esta muestra de transacciones son los más lentos. Aquí podemos ver que el tramo update_card_payment es el proceso más lento en la línea de tiempo, ocupando 5.002,21 ms de una transacción de 5.535,61 ms.

El span update_card_payment ocupa 5.002,21 ms de la transacción.
El span update_card_payment ocupa 5.002,21 ms de la transacción.

Al hacer clic en ese span se abre el modal/pop-up de detalles del span y se incluye el stack trace del span.

Ver los detalles del span, incluyendo el stack trace.
Ver los detalles del span, incluyendo el stack trace.

Podemos ver que el gancho de WordPress action:woocommerce_add_to_cart está asociado a este span en los detalles del span.

Hay un par de formas de rastrear con qué plugin o tema está asociado.

Si te sientes cómodo con la línea de comandos, puedes utilizar el comando grep para buscar la función update_card_payment y ver qué archivos de plugins o temas contienen esa función.

Alternativamente, puedes mirar en la pestaña de WordPress en Resultados de la monitorización y buscar un plugin con una Duración total y una Duración máxima similares. Lo más probable es que esté al principio de la lista.

Ver los plugins de WordPress más lentos en la pestaña de WordPress en Resultados de la monitorización.
Ver los plugins de WordPress más lentos en la pestaña de WordPress en Resultados de la monitorización.

Puedes confirmar la coincidencia seleccionando el plugin en la lista de plugins más lentos de WordPress. Si el plugin no aparece en la columna de plugins de WordPress en el modal/pop-up de Muestras de transacción, selecciona la muestra de transacción más lenta para ver la línea de tiempo de la traza de la transacción.

Selecciona la muestra de transacción más lenta para ver la línea de tiempo del rastreo de transacciones.
Selecciona la muestra de transacción más lenta para ver la línea de tiempo del rastreo de transacciones.

Ordena la línea de tiempo por Duración y busca que el mismo nombre de función (por ejemplo, actualizar_tarjeta_pago) esté en la parte superior de la lista o cerca de ella cuando esté ordenada.

Ordena la línea de tiempo por Duración y busca el nombre de la función en la columna Tramos.
Ordena la línea de tiempo por Duración y busca el nombre de la función en la columna Tramos.

Investiga la lentitud general

La lentitud general de un sitio suele deberse a un plugin y es uno de los primeros puntos que deberás comprobar. Si un plugin está causando la lentitud de tu sitio, normalmente se puede identificar viendo la pestaña de WordPress (Sitios de WordPress nombre del sitio > APM > WordPress). En la siguiente captura de pantalla, observa que el porcentaje de duración total del plugin resaltado es superior al 98%, y la duración máxima y media son bastante elevadas.

Ver el porcentaje de duración total, la duración máxima y la duración media de un plugin.
Ver el porcentaje de duración total, la duración máxima y la duración media de un plugin.

Esto indica que este plugin es la fuente más probable de la lentitud general del sitio. Para confirmarlo, podemos desactivar el plugin, observar el rendimiento del sitio y volver a comprobar los resultados en la herramienta APM cuando se hayan recogido suficientes datos. Si estás seguro de que el plugin está configurado correctamente pero sigue causando lentitud en tu sitio, te recomendamos que te pongas en contacto con el desarrollador del plugin para trabajar con él en la resolución del problema.

Localizar problemas intermitentes de terceros

Las peticiones externas son peticiones HTTP realizadas por el sitio a otro servidor (de terceros). Los plugins o los temas suelen hacer estas peticiones para cargar scripts u hojas de estilo o para comunicarse con una API.

Al solucionar un posible problema externo, es importante tener en cuenta que la herramienta APM registra las transacciones externas lentas en el lado del servidor. Se pueden hacer muchas peticiones externas desde un sitio en el lado del cliente, que no se registrarían en la herramienta APM. Para investigar las peticiones externas del lado del cliente, tendrás que utilizar una herramienta como GTmetrix o las herramientas de desarrollo de tu navegador.

Para ver las peticiones externas lentas, ve a la pestaña Externa en Resultados de la monitorización para ver las peticiones externas más lentas. En este ejemplo, hemos notado cierta lentitud al subir imágenes en la biblioteca multimedia, con algunas subidas que tardan 5 minutos o más en completarse.

Empezamos por ver cómo son las peticiones externas cuando no hacemos nada más que entrar en el panel de control de WordPress. Antes de subir las imágenes a la biblioteca multimedia, las peticiones a POST a wp-cron son las más lentas, con 273,78 ms de duración máxima y 1.957,81 ms de duración total.

Peticiones externas más lentas en APM.
Peticiones externas más lentas en APM.

Cuando subimos varias imágenes cuyo tamaño oscila entre los 3MB y los 17MB, éstas tardan varios minutos en terminar de subirse. Si volvemos a mirar las peticiones externas, vemos que las peticiones POST a smushpro.wpmudev.com son las más lentas, con una duración máxima de 1.703,14 ms y una duración total de 82.710,85 ms.

Actualizadas las peticiones externas más lentas después de subir y optimizar las imágenes.
Actualizadas las peticiones externas más lentas después de subir y optimizar las imágenes.

Al hacer clic en esa transacción, se abre el modal/pop-up Muestras de transacciones, donde podemos seleccionar la transacción más lenta (la primera de la lista) para ver más detalles.

Selecciona la muestra de transacción más lenta en peticiones externas.
Selecciona la muestra de transacción más lenta en peticiones externas.

Esto nos lleva a la línea de tiempo del rastreo de transacciones, donde podemos ordenar las transacciones por Duración (tiempo) para ver qué tramos son los más lentos. Aquí podemos ver que varias peticiones de POST a smushpro.wpmudev.com son las más lentas de esta muestra, ya que el total de esas peticiones de POST ocupan 6.712,64 ms de una transacción de 7.168,58 ms.

Viendo todas las peticiones a smushpro.wpmudev.com en una línea de tiempo de rastreo de transacciones.
Viendo todas las peticiones a smushpro.wpmudev.com en una línea de tiempo de rastreo de transacciones.

También podemos observar que la duración de cada solicitud varía significativamente, ya que la solicitud más corta sólo tarda 138,2 ms y la más larga tarda 1.703,14 ms. Por tanto, mientras el plugin Smush optimiza nuestras imágenes, cada una de ellas genera una petición externa, que se suma y puede ralentizar las cosas en el sitio.

En este caso, optimizar nuestras imágenes antes de subirlas en lugar de confiar en un plugin para la optimización de imágenes reduciría significativamente nuestras peticiones externas. Este es uno de esos casos en los que tendremos que decidir qué es más importante, la comodidad o el rendimiento del sitio. Podemos mantener el plugin si nos parece bien la necesaria lentitud causada por las peticiones externas. Si preferimos o necesitamos mejorar el rendimiento de nuestro sitio, eliminar el plugin y optimizar nuestras imágenes antes de subirlas será nuestra mejor opción.

Resumen

Utilizando las estrategias de los ejemplos anteriores, puedes utilizar la herramienta APM de Kinsta para depurar los problemas de rendimiento de tu sitio. Cada situación y cada sitio son diferentes, pero puedes aplicar los métodos generales de solución de problemas aquí expuestos para ayudarte a ti o a tu desarrollador a localizar los problemas de rendimiento de tu sitio.