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:
- 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.).
- 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.
- Una vez que la herramienta APM comience a recopilar datos, vuelve a crear la incidencia para registrar la información necesaria.
- 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.

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.

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.

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

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.

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.

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.

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.

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.

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.

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.

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.

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.