PHP X-Ray, realizando análisis para depurar problemas de rendimiento

La depuración de problemas de rendimiento en una aplicación es una de las tareas más complejas, averiguar que causa lentitud o que provoca un cuello de botella causa de consumos de CPU puede llegar a ser una tarea imposible.

X-Ray es una herramienta que viene a simplificar todo el proceso de análisis, durante un periodo de tiempo o número de peticiones determinado, analizará en profundidad cada proceso PHP que se genere en la cuenta, desglosando las peticiones SQL, ficheros PHP y funciones involucradas y creando un perfil de tiempo en cada caso y consumo de recursos, logrando de esta forma disponer de una imagen clara acerca del funcionamiento de la web o aplicación que permita al administrador tomar acción.

Creando un proceso de analisis y depuración

Accede a X-Ray app en cPanel, y en la zona superior derecha encontrarás el botón "Start tracing", este abrirá un formulario para crear el perfil de depuración.

Formulario depurar dominio

Si queremos monitorear dominio.com/direccion-lenta, el campo "Specify mask" sería direccion-lenta, si en cambio queremos monitorizar todo, introducimos el carácter asterisco *

El asterisco se podría combinar, por ejemplo queremos monitorizar todas las direcciones que empiecen por clientes, ej dominio.com/clientes/acceso, dominio.com/clientes/comprar, en ese caso podemos insertar en mask: clientes/*

Otros caracteres con funciones especiales son ? y [] que puedes consultar en mayor detalle en el enlace "How to use special characters?", que aparece en el formulario.

Por defecto X-Ray monitorizará 20 peticiones en total que coincidan con el patrón y dominio indicado, si queremos monitorizar un número mayor de peticiones o durante más tiempo, hacemos click en "Advanced settings" para definir el tiempo o número de peticiones.

Finalmente hacemos click en Run y esperamos que X-Ray comience a recopilar y analizar datos, el trabajo aparecerá en el listado y podremos detenerlo de ser necesario.

Listado de análisis en curso

Interpretando los datos

Podemos esperar a que termine el proceso de monitorización o ver en tiempo real aquellos análisis que X-Ray haya completado

Todas las peticiones aparecerán en un listado que podemos ordenar por tiempo de ejecución y que mostrará con preferencia aquellas que sean consideradas lentas.

Listado procesos de analisis

Una vez accedemos al reporte de algunos de estos procesos, podremos ver datos como:

  • Tiempo total de ejecución
  • URL exacta del impacto
  • Listado de plugins o componentes de la web y cuál fue el uso de tiempo en cada caso.
  • Llamadas realizados a servidores externos y su impacto en el rendimiento
  • Desglose de consultas SQL con procedencia en el código y tiempo
  • Funciones PHP y procedencia en código con mayor consumo de tiempo.

Desglose uso de recursos y tiempo Wordpress

Además podrás descargar el reporte en formato PDF para facilitarlo a los desarrolladores.

Puntos importantes a tener en cuenta

X-Ray analiza en profundidad los procesos, esto implica que habrá un impacto en el rendimiento durante la ejecución de aquellos accesos que sean analizados, por ese motivo te recomendamos no monitorizar durante largos intervalos de tiempo, hacerlo con pocas peticiones y detener la monitorización cuando recopiles la información que necesitas.

Además, si la cuenta está siendo limitada por los límites de CPU y memoria, esto afectaría a los resultados de depuración que arroja X-Ray, en ese caso la propia herramienta alertará del problema en la petición afectada para que se tenga en cuenta a la hora de evaluar ese reporte.

X-Ray es una herramienta que sin lugar a dudas marca la diferencia en el análisis y resolución de problemas de funcionamiento y rendimiento y que se debe convertir en el indispensable en el arsenal de todo administrador y desarrollador.