Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP
Code

Diagnosticar Problemas de Rendimiento de WordPress Con New Relic

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Performance Monitoring With New Relic.
Introduction to New Relic Synthetics
Get Started With Monitoring Your Web Application Using New Relic Alerts
Sponsored Content

This sponsored post features a product relevant to our readers while meeting our editorial guidelines for being objective and educational.

Spanish (Español) translation by Eva Collados Pascual (you can also view the original English article)

Final product image
What You'll Be Creating

Este tutorial es una continuación desde donde lo dejamos en el artículo Usar New Relic para Monitorizar el Rendimiento de WordPress. Aquí, te voy a proporcionar una descripción de los conceptos del funcionamiento de WordPress y una guía con la que podrás examinar el rendimiento de tu propio sitio WordPress con New Relic.

Si has llegado hasta aquí desde el tutorial Optimización de WordPress con Varnish and W3 Total Cache, ya tienes algunos conocimientos relativos a un WordPresscon una base bien optimizada. Si no es así, podrías revisar el artículo que acabo de mencionar.

Utilizar New Relic con WordPress

WordPress es un potente sistema de código abierto para la creación de blogs que puede gestionar desde pequeños blogs personales hasta grandes webs para los principales medios de comunicación. Pero realmente, conseguir que WordPress funcione bien y escalar con éxito y rentabilidad, requiere una gran dosis de sofisticación.

Los servicios de monitorización del rendimiento como New Relic proporcionan una excelente forma para asegurarnos de que la configuración de WordPress continúa funcionando sin problemas y eficientemente.

Nota: New Relic advierte que sus servicios se aprovechan mejor para optimizar instalaciones de WordPress alojadas en servidores dedicados, no virtuales o servidores compartidos, como los que ofrecen muchos proveedores en la nube. Si estás ejecutando WordPress en un alojamiento compartido, New Relic no te será tan útil como lo es para sitios web alojados en servidores dedicados.

Si quieres más información sobre New Relic antes de sumergirte en esta guía sobre rendimiento, Tuts+ tiene una gran variedad de artículos sobre sus servicios.

¿Qué convierte a WordPress en rápido o lento?

En 2013, Frederick Townes, el creador del plugin gratuito para WordPress W3 Total Cache, escribió un blog sobre New Relic que describía aquellos aspectos de rendimiento que debemos tener en cuenta: Optimización del Rendimiento de WordPress Con New Relic. Constituye un excelente resumen que voy a analizar.

Townes destaca las áreas principales en las que tenemos que centrarnos:

1. Rendimiento del Disco. Un disco duro local no compartido siempre ofrecerá un rendimiento más consistente y fiable. Por ejemplo, usar un alojamiento que ofrece unidades SSD o discos duros de alta velocidad sería lo ideal.

2. La Caché de Cadenas de Consulta MySQL. La caché de consultas conserva los resultados de las consultas a la base de datos habituales y puede devolver los resultados inmediatamente sin tener que hacer la consulta repetidas veces. Townes recomienda ejecutar MySQLTuner para que nos asista en el ajuste óptimo de nuestra configuración de base de datos.

3. Las Consultas de tu Tema y Plugins en WordPress. De forma predeterminada, WordPress está configurado para ejecutarse bien, pero conforme añadimos plugins y temas de terceros, podemos acabar incluyendo código de mala calidad que podría acarrear problemas de rendimiento.

4. Tamaño de los Archivos de Temas y Plugins en tu WordPress. Reducir el tamaño de archivo así como el número de archivos (y consecuentemente, las transacciones HTTP) tiene un impacto drastico en la experiencia que los usuarios tienen en tu sitio. Lamentablemente, no todas las Hojas de Estilo en Cascada (CSS) o JavaScript (JS) pueden consolidarse y minimizarse fácilmente.

5. Optimizar PHP, que es particularmente lento. Versiones más rápidas de PHP como HHVM podrían ser en un futuro adecuadas para WordPress, pero he leído que aún no son lo suficientemente estables como para incorporarlas. Mientras tanto, Townes ofrece una lista con sugerencias: reducir la huella de la memoria de tus scripts, usar autoload, usar memorización, evitar los bucles (loops), reducir los tiempos de ejecución, minimizar el número de archivos abiertos para reducir llamadas al disco y el uso de memoria, y usar include y require en lugar de include_once y require_once.

6. Usar un Almacenamiento en Caché Opcode como APC, un framework de código abierto para el almacenamiento en caché de código PHP. Townes, dice: "APC mantiene la versión interpretada (ejecutable) del código en la memoria por lo que sus solicitudes no deben ser interpretadas de nuevo."

"Caché de objeto de WordPress es donde ocurre gran parte de la magia. Hay varios grupos de objetos que son generados por WordPress cuando procesa las solicitudes de páginas. Estos grupos sirven a muchos propósitos y dependiendo de cómo utilices WordPress, un aumento muy significativo del rendimiento se produce por el almacenamiento persistentemente de los objetos que usan memcached o almacenamiento en el back-end APC por ejemplo."

La configuración de Townes de W3 Total Cache implementa esto a nivel de la caché de página, permitiendo escenarios en los que porciones de una determinada página pueden todavía ser generadas por PHP mientras que grandes porciones de la página que no hayan cambiado estarán en la caché y no serán regeneradas.

«W3TC te permitirá elegir un almacenamiento de datos que no sean MySQL como memcached, el cual está diseñado para el acceso a alta velocidad de múltiples servidores de aplicaciones. De modo que en lugar de que cada página solicitada que necesite obtener información relativa al visitante y otros elementos dinámicos, MySQL es ahora capaz de concentrarse (y ajustarse para) sólo en las partes dinámicas de las plantillas. "

Townes comenta, "la caché fragmentada reducirá tu tiempo de ejecución por órdenes de magnitud."

7. Usar la Caché de la Página. La técnica más efectiva para escalar un típico sitio web consiste en almacenar en caché las páginas. En lugar de golpear tu pila con cada petición de página, WordPress, Tema, Plugins, HTML y MySQL, recuperamos sólo HTML estático desde la caché web, a menudo de su memoria. El aumento del tráfico en un sitio WordPress que no almacena en caché puede hacer caer el sitio en segundos, mientras que un aumento de tráfico en un sitio con archivos HTML previamente cacheados en memoria es escalable, y no tumbarña la web.

Townes, dice: "los servidores proxy inversos a menudo proporcionan almacenamiento en caché ubicado entre la aplicación web y la Internet pública. Su objetivo es aligerar la carga desde los servidores web que los sustentan. Los proxies inversos están optimizados para devolver el contenido generado por la aplicación subyacente. Varnish, Nginx e incluso Apache pueden ser configurados para proporcionar la funcionalidad de proxy inverso."

Yo uso con más frecuencia una combinación de Varnish con Apache y W3 Total Cache para escalar WordPress. Si estás interesado en conocer mejor estas configuraciones, échale un vistazo a: Optimizar WordPress con Varnish y W3 Total Cache (Tuts+).

8. las redes de distribución contenidas (CDNs) son servicios de almacenamiento en caché en la nube archivos utilizados y medios de comunicación. Townes, dice: "con un CDN, no importa donde está alojado tu sitio. Si usted tiene visitantes de otras partes del mundo, la CDN almacena en caché contenido cerca de ellos y afeita a segundos en total en el tiempo de carga total de la página de su sitio."

Ahora que sabemos que algunos de los conceptos claves de lo que va a hacer que WordPress funcione bien, vamos a ver cómo nos puede ayudar New Relic.

Emplear New Relic para Monitorizar WordPress

New Relic es un servicio para revisar el rendimiento que funciona con una variedad de servidores y tecnologías del lenguaje, incluyendo PHP, lo que lo hace ideal para optimizar WordPress.

New Relic proporciona una monitorización del rendimiento de la pila completa, qué es lo que experimentan los usuarios finales, pero además proporciona una monitorización detallada de los servidores. Townes comenta, "New Relic convierte en algo simple la difusión de lo que está sucediendo en tu entorno."

Cuando ejecutas New Relic en tu servidor, puedes obtener gráficos y estadísticas detallados del la supervisiones del rendimiento de tu servidor y de PHP, incluyendo: el tiempo de respuesta, puntuación Apdex (la proporción de tiempos de respuesta satisfactoria comparada con la proporción de los tiempos de respuesta insatisfactorios), el rendimiento (peticiones por minuto), las solicitudes de transferencia web, por ejemplo las solicitudes de las APIs de terceros, la tasa de errores, los eventos recientes e información del servidor.

New Relic Browser

Más aún, New Relic Browser monitoriza los datos del ciclo de vida de la página completa, más allá de la carga inicial de la página. Para la carga de página realizada por cada usuario, New Relic registra lo siguiente:

  • el tiempo de permanencia en la parte pública o front-end (navegador)
  • código y eventos ejecutados en el navegador (JavaScript, Ajax y las interacciones llevadas a cabo por el usuario)
  • tiempo en el back-end (en la aplicación en red y web)
  • origen geográfico
  • tipo de navegador y su versión, así como el y sistema operativo

Puedes ver los datos de todo el mundo, de forma global, a través de todos los usuarios y observarlos también segmentados según página web, navegador, sesión de usuario y ubicación.

Expliqué con más detalle New Relic Broser en el artículo Monitorizar el Front End con New Relic Broser (Tuts+).

New Relic Synthetics te permite configurar pruebas periódicas de tu sitio web desde cualquier parte del mundo para avisarte inmediatamente de los problemas en cuando surgen. Explicaré Synthetics en un próximo tutorial, así que visita mi página de instructor en Tuts+ para saber cuando lo publico.

Usar New Relic Junto Con W3 Total Cache

Sign Up for New Relic

Ya expliqué el proceso de instalación y registro para integrar el servicio W3 Total Cache de New Relic en este tutorial: Usar New Relic para Monitorizar el Rendimiento de WordPress (Tuts+).

Desde el panel de administración de WordPress, haz clic en Rendimiento > Control. Pulsa para registrar una cuenta gratuita. A continuación copia los detalles de tu API y la clave de licencia en el panel de ajustes de W3 Total Cache:

Enter your New Relic API and license key in W3TC settings

Habilitar New Relic en tu servidor te permite controlar la monitorización desde el panel de W3TC, tal y como se muestra a continuación:

W3 Total Cache Dashboard Panel for New Relic

Para obtener más detalles, visita el sitio web de la New Relic e inicia sesión con tu cuenta.

Monitorizar el Funcionamiento de Tu Web WordPress

Evaluar el Rendimiento del Servidor

En un nivel alto, el seguimiento que realiza New Relic Server te proporciona un resumen del uso de CPU, el uso de memoria y disco y red I/O, así como información sobre tu hardware y los procesos más activos. Esto puede dar una vista general de lo que está pasando con tu configuración y avisarte de cualquier problema significativo:

New Relic Servers Dashboard

La pestaña Proceso te muestra la memoria y la CPU empleada por cada proceso:

New Relic Processes

También puedes ver un historial de alertas, señalando con banderas rojas el desempeño de su sitio:

New Relic Server Alert History

Evaluar el Rendimiento de WordPress

New Relic es útil para evaluar el rendimiento de WordPress en tres puntos críticos:

1. Apdex. New Relic utiliza la puntuación Apdex para ayudarte a evaluar en que medida la aplicación Wordpress está funcionando bien para tus usuarios finales, según unos valores de medición estándar de la industria. Esto te ayuda a proporcionar más información para solucionar problemas y obtener una clara comprensión de cual es el porcentaje de usuarios satisfechos o frustrados. La puntuación de Apdex también te proporciona un contexto más específico que el aviso general «el sitio es lento» que podría incluso no llegarte hasta horas después de acaecido el incidente. Apdex también te ofrece una forma más objetiva de medir en qué medida están notando tus usuarios reales las acciones realizadas para mejorar el rendimiento.

2. Rendimiento de MySQL. Los temas y plugins de Wordpress podrían abusar de tu base de datos mySQL. Podrías detectar aquellos que causando problemas mirando el SQL lento en New Relic. Por ejemplo, podrías ver que selecciones en wp_terms, empleadas en categorías y etiquetas, pueden corresponderse con un 20% del tiempo total que emplea la base de datos. O, podrías detectar comandos INSERT lentos que pueden ser mejorados con un índice bien colocado o una consulta depurada.

3. Monitorizar el Rendimiento de Plugins y APIs de Terceros. Emplear plugins para redes sociales, plugins para monitorizar así como estupendos widgets es muy fácil en WordPress, pero podría hacerse inmediatamente obvio cómo estas dependencias de terceros afectan a tu blog o web de marketing. New Relic te permite ver las llamadas a servicios externos "enrollado" para obtener una visión más holística, y también puede supervisar los tiempos de respuesta de terceros en cada una de las transferencias web que detecta New Relic.

Podemos utilizar el Navegador de New Relic para estudiar el rendimiento de WordPress con más detalle. Desearás buscar especialmente código de tus Temas y Plugins que puedan estar afectando negativamente al rendimiento.

El panel de herramientas te da una visión general del tiempo de carga de la página desglosadas por Apdex y del rendimiento:

New Relic Browser Overview

Esta es una vista aumentada de mi puntuación en Apdex durante las últimas 24 horas:

New Relic Apdex Score over 24 Hours

También puedes ver el rendimiento respectivo de cada página:

New Relic Page View Segmentation

Cuando veas el desglose, podrás ver el funcionamiento de los archivos individuales y cómo éstos están siendo cargados por su sitio. Querrás buscar cualquier archivo del tema o de los plugins que estén tardando excesivo o sospechoso tiempo de carga:

New Relic Script Analysis
New Relic Page Performance

Análisis de MySQL

La monitorización de servidor con New Relic también puede hacer un seguimiento del rendimiento de las consultas MySQL:

New Relic APM Database MySQL Query Tracking

Puedes desplazarte hacia abajo para ver detalles adicionales:

New Relic APM Database MySQL Query Tracking Detail View

Y diagnosticar las consultas más lentas:

New Relic APM Database MySQL Tracking Slow Queries

Esto puede ser especialmente útil para identificar consultas lentas creadas por mal código perteneciente a un plugin.

Rastros de Sesión

Los rastros de sesión te darán una completa visión de todo el ciclo de vida de una página web, incluyendo las interacciones del usuario, la carga de recursos, los iframes, el tiempo de espera de las llamadas Ajax, errores y más, hacer un seguimiento de la experiencia de un usuario real de principio a fin.

Las huellas no sólo identifican problemas, sino que también pueden mostrar lo que el usuario hizo antes y después de que se produjese el error.

New Relic Session Traces

Aquí es tienes un desglose detallado de tus sesiones. Esto puede ayudar a evaluar el rendimiento de código dentro de los temas y plugins:

New Relic Session Traces Detail

Los rastros de sesión ayudan a comprender lo siguiente:

  • Cómo experimentan los usuarios la carga de la página, incluyendo el tiempo de carga del DOM, el tiempo de espera para que se completen las solicitudes Ajax y las interacciones del usuario con la página
  • la secuencia de eventos los JavaScript y los del navegador, que tardan más que otros, y cuando se produce cada uno de ellos
  • donde se producen los embudos, y qué es lo que puede estar causándolo
  • pistas de por qué la carga de una página puede ser más lenta que la de otras, proporcionando contexto a los eventos individuales acaecidos durante una sesión

Podrás ver qué es lo que estaba ocurriendo exactamente en el navegador de un usuario concreto en cualquier momento particular. Sesión darle visualización detallada e intuitiva de todos los eventos en la sesión del usuario y puede ayudar a identificar áreas problemáticas y fácilmente identificar soluciones. Lee más sobre el uso de las huellas de sesión.

Ajax y JavaScript

La página de Ajax te permite ver lo que está pasando con cualquier llamada interactiva que tengas en la página, ayudandote a identificar problemas en la experiencia de tus usuarios cuando tienes llamadas que consumen excesivo tiempo o que están fallando:

New Relic AJAX Analysis

Observa que New Relic Browser no registra automáticamente datos Ajax. Tendrás que activarlo para cada aplicación desde el área de ajustes de la New Relic. Lee más sobre el panel de control de Ajax.

El panel de errores JavaScript de Browser te permite descubrir rápidamente los errores JavaScript que están sucediendo en tu producción en vivo a o largo del tiempo, en la que los navegadores. Puedes seleccionar los errores a investigar basándote en el número de veces que ocurrió cada uno y en el número de cargas únicas de página que encontraron ese error.

Esto te permite identificar los errores que están impactando en la experiencia de los usuarios reales de tu sitio; es una forma especialmente potente para aprender sobre los errores de JavaScript que no aparecen en tus propias pruebas, o en los navegadores que usted podrías haber excluido de tu banco de pruebas.

New Relic Javascript Analysis

De Cara al Futuro

El alojamiento privado de WordPress requiere un alto grado de habilidad técnica. Si no estás preparado para ello, los alojamientos gestionados son una mejor alternativa. Muchos de estos utilizan New relic internamente para optimizar sus propios sitios, por ejemplo Page.ly.

Profundizar más sobre New Relic requeriría una mayor inversión de tiempo, pero los resultados valen bastante la pena. Con esta herramienta, se puede ver dentro de la pila de tu WordPress para seleccionar rápidamente las áreas problemáticas que debes abordar.

Si tienes un alojamiento privado, los servicios de New Relic pueden constituir formas increíblemente poderosas de observar tu propio entorno de alojamiento y tu pila de WordPress, temas y plugins, y así domar la bestia del rendimiento.

En tu proceso de implementación y de desarrollo si estás construyendo tus propios temas y plugins, definitivamente querrás profundizar en tu sitio con New Relic.

Aunque puedes usar New Relic Lite por siempre, una vez que haya expirado tu periodo de prueba de dos semanas, probablemente querrás actualizar al plan Pro ($149/mes) para mantener los mismos niveles de servicio. New Relic Browser, Synthetics e Insight tienen sus propias estructuras de precios, más información en la página web de New Relic.

S tienes cualquier pregunta o corrección, por favor publícalos en los comentarios. Si deseas mantenerte al día sobre mis otras series y futuros tutoriales para Tuts+, por favor visita mi página de instructor o sígueme en @reifman.

Enlaces Relacionados

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.