Blog Kukoa
Dirección técnica en estrategias de Márketing Digital

Mediante la realización de una auditoría para un buen cliente de Kukoa, hemos podido determinar grandes ventajas en rendimiento de Wordpress sobre servidores HHVM. Los resultados demuestran un rendimiento muy superior de los procesos de Wordpress funcionando sobre servidores HHVM en vez de los tradicionales Apache o Nginx.

Paul-Newman-Racing-Car

Introducción a HHVM

A grandes rasgos, los servidores (Apache, Nginx, IIS, HHVM Server etc...) interpretan y compilan los archivos php que solicita cada visita de usuario en la web. La interpretación, compilación y ejecución la realizan dentro de los servidores, los Just-in-Time Compilers (PHP o HHVM en este caso).

Dinamica servidores

Esquema (muy) aproximado del circuito de petición de archivos php.
 

 

HipHop Virtual Machine (HHVM) fue desarrollado en 2010 por Facebook como respuesta al creciente uso de la red social con impacto en el rendimiento de la plataforma, mediante HHVM los primeros resultados dieron un rendimiento 1,6 veces superior en el interpretador. Los días en que Facebook quedaba colgado, quedaban atrás.

Tomamos la decisión de realizar un benchmark de rendimiento de Wordpress 4.3.1 con HHVM por los artículos que se citan por internet y por pruebas piloto con otro cliente de Kukoa, siguiendo el espíritu de innovación para nuestros clientes que nos define.

En auditorías de seguridad web es clave realizar pruebas de estrés para saber como se comportará la plataforma cuando esté bajo un ataque. Más importancia tiene la auditoría de rendimiento y seguridad tratándose de Wordpress, dado que por ser el gestor de contenidos más popular y simple, es el más susceptible a ataques, como alertamos en Septiembre

 

Metodología de la auditoría de rendimiento

Realizamos pruebas de carga de usuarios mediante JMeter definiendo:

  • 3 conexiones concurrentes.
  • 3 páginas distintas.
  • Muestra entre 135 y 1350 peticiones durante 1 minuto.

En 3 tipologías de servidores distintos con 4 casuísticas:

  • Apache + PHP (WP4.3.1 + Plugin Total Cache Activo).
  • Nginx + PHP (WP4.3.1 + Plugin Total Cache Inactivo).
  • HHVM Server + HHVM (WP4.3.1 + Plugin Total Cache Inactivo).
  • HHVM Server + HHVM (WP4.3.1 + Plugin Total Cache Activo).

Todos los servidores tenían una copia del servidor de producción activo con:

  • Wordpress 4.3.1.
  • 29 plugins (9 no actualizados).
  • Código a medida no optimizado.
  • Cargas de scripts de terceros.

 

Visión general de carga de rendimiento de Wordpress

 

vision-general-rendimiento-wordpress

 

 

Más allá de las limitaciones técnicas del gestor y de la mala estrategia digital para la elección del gestor de contenido adecuado para cada modelo de negocio, la simplicidad de Wordpress y su facilidad en la implementación (y perversión) de plugins, hace que sea uno de los gestores de contenido más extendidos en internet.

A medida que vamos instalando plugins para implementar cualquier funcionalidad en el gestor de blogs, incrementamos el coste de ejecución de la función apply_filters incidiendo directamente en el coste total de carga de página.

En la tabla de llamadas PHP de la auditoria de rendimiento y seguridad realizada vemos que la función apply_filters tiene 50193 llamadas, con un coste total de 79ms.

 

Variación del rendimiento obtenido en frontend de Wordpress

variacion-rendimiento-wordpress-hhvm

 

A primera vista, el rendimiento del compilador HHVM sobre HHVM Server con Plugin Total Cache activo da los mejores resultados en rendimiento (129ms y 20,7 peticiones por segundo de throughput), más de 6 veces superior al rendimiento obtenido con Apache + PHP + Total Cache (973ms y 3 peticiones por segundo), pero debemos resaltar que los resultados de HHVM Server + HHVM + TC se obtuvieron bajo un estrés de 1.350 peticiones por minuto (!!!), mientras que el primero tan sólo fueron 135 peticiones por minuto, dando un diferencial de rendimiento total de más de 600 veces superior.

Cabe destacar que la prueba de HHVM Server + HHVM + TC inactivo con 581 peticiones por minuto da valores similares al servidor con Apache con 135 peticiones por minuto.

 

Variación del rendimiento obtenido en Backend de Wordpress

variacion-rendimiento-wordpress-backend-hhvm

 

Durante la ejecución de pruebas de carga de usuarios, realizamos pruebas de carga manual en páginas específicas del backend, obteniendo reducciones de hasta 5 segundos de carga por página en HHVM Server.

 

Conclusión a la auditoría de rendimiento web

Dada a la popularidad global del gestor de contenidos Wordpress (25% de todos los sitios web de internet están hechos con Wordpress) y sus limitaciones técnicas, se tiende a recurrir a plugins para implementar cualquier tipo de funcionalidades más allá del núcleo base. El uso de plugins en Wordpress no es gratuito ya que afectan directamente a la seguridad del entorno así como al rendimiento.

La velocidad de carga de la página esta teniendo más relevancia como factor de posicionamiento y tiene menciones especificas en las ultimas pautas para evaluadores de calidad de búsqueda publicadas por Google este mes de Noviembre, por lo que es esencial poder dar un rendimiento optimo y poder ofrecer una experiencia de usuario satisfactoria.

Tecnologías de código libre como HHVM nos ofrecen mejoras muy significativas para optimizar la usabilidad, así como diferenciarnos de la competencia a nivel de posicionamiento y mejorar la experiencia de usuario móvil.

Agradecemos, recomendamos y damos especial mención a nuestro partner Twinlan (www.twinlan.com) por dejarnos usar servidores HHVM para la realización de las pruebas. Si buscáis tecnología HHVM Server, ellos son solución.

En 2016 Google empezará a promocionar sitios web móviles con el framework Accelerated Mobile Pages (AMP), por lo que podemos intuir que veremos crecimiento en tecnologías similares de alto rendimiento ya sea AMP, HHVM o PHP7. Los principales actores en internet están tomando posiciones en optimización de rendimiento, ofreciendo frameworks a los usuarios para poder optimizar los recursos. Al fin y al cabo, optimizando recursos, reducimos gasto energético de servidores y costes.

En Kukoa estamos siempre un paso por delante de la tecnología con nuestros clientes, ofreciendo proactividad en nuestros servicios y alto conocimiento técnico. Creemos en la entrega de valor con aprendizaje, priorizando procesos de I+D por delante de entregables, es un cambio de mentalidad en la cultura y valores de los marcos de definición de proyectos tecnológicos orientado a la definición de funcionalidades por delante del producto en si, resultando en una optimización final del producto siguiendo pautas de Lean UX, reduciendo riesgos e incrementando rendimiento de equipos, aportando beneficios muy por delante de cualquier otra empresa.