En la comparación debemos evaluar algunos aspectos del rendimiento de los CMS (Sistemas Gestores de Contenido por sus siglas en inglés). Utilizamos los que nos parecieron más interesantes y de los que más se ha hablado en foros y otros artículos de Internet; éstos fueron Drupal, Joomla y WordPress.

El caché avanzado, la replicación de bases de datos, balance de carga, caché de las páginas y exportación de contenido estático, son las características que más importancia concedemos a la hora de evaluar el rendimiento de un CMS.

Caché avanzado

En este característica se evaluó la capacidad de los CMS para implementar mecanismos de caché avanzados, que van más allá del caché de simples páginas en los gestores. Por ejemplo para instancias, navegación, plantillas o caché de los objetos del contenido.

Siendo éste el aspecto más importante a la hora de obtener un buen rendimiento y minimizar significativamente el tiempo de respuesta de las páginas y aumentar la cantidad de páginas servidas por minuto.

También se tuvo en cuenta que el CMS implementara mecanismos para cachear el contenido de las páginas de tal forma que si éstas son solicitadas más de una vez el sistema se ahorre la mayor parte del trabajo de volver a construirlas.

  • Drupal: implementa un caché avanzado en la instalación del CMS. Para activarlo no es necesario configurar nada luego de instalarlo, porque este caché ya está activado de forma implícita. En la configuración de este gestor de contenido se puede configurar el caché avanzado en dos modalidades: normal y agresivo. El primero es el recomendado por los desarrolladores, aunque el funcionamiento del segundo está en dependencia de los módulos que hayamos instalados y podría resultar más recomendable en determinados escenarios.
  • Joomla: al igual que Drupal, implementa un caché avanzado en la instalación. Para activarlo no es necesario configurar nada luego de la instalación, porque este caché ya está activado de forma implícita en el CMS.
  • WordPress: este gestor de contenido no implementa por defecto este tipo de caché avanzado. Pero la buena noticia es que es posible implementarlo instalándole una extensión gratuita que podemos descargar de las páginas correspondientes. Para activar el caché avanzado a WordPress debemos instalar la extensión WP-Super Cache.

Replicación de bases de datos

En este punto tenemos en cuenta si el sistema tiene la habilidad de explotar la replicación para aumentar su escalabilidad.

  • Drupal: este CMS tiene la habilidad de leer los datos de servidores esclavos y escribir en un servidor de datos maestro. La información escrita en el servidor maestro será escrita inmediatamente en los servidores esclavos mediante la replicación previamente configurada en los servidores de datos. De esta forma el gestor de contenido trabaja mejor implementando un balance de carga en los servidores de datos y una alta disponibilidad del sitio.
  • Joomla: de momento no implementa nada al respecto.
  • WordPress: la replicación hacia múltiples bases de datos es posible en este gestor de contenido si le instalamos la extensión HyperBD que permite el fraccionamiento de la base de dato, de esta forma la información estará distribuida en múltiples servidores. También permite la replicación de la base de datos completa hacia otros servidores, declarando uno como maestro, el que replicará hacia el resto de los servidores esclavos. Esto nos permite que el sitio se mantenga funcional si deja de funcionar uno o varios de los servidores de datos.

Balance de carga

En esta característica se tuvo en cuenta que el sistema permitiera distribuir la carga del CMS entre varios servidores.

  • Drupal: soporta completamente esta característica. Las sesiones de usuarios pueden ser pasadas entre los nodos del clúster de servidores de forma transparente al cliente. Combinando este aspecto con el anterior permiten que el sistema sea altamente escalable.
  • Joomla: hasta ahora no implementa el balance de carga entre servidores múltiples.
  • WordPress: al igual que Joomla; Hasta el momento no implementa el balance de carga entre múltiples servidores.

Exportación de contenido estático

En esta característica se evaluó la habilidad del sistema de exportar el contenido como HTML estático.

  • Drupal: no implementa esta funcionalidad.
  • Joomla: al igual que Drupal, no implementa esta funcionalidad.
  • WordPress: en la instalación por defecto no implementa esta funcionalidad. Para activar la exportación de páginas es necesario instalar la extensión WP-Super Cache. El plugin permite que este CMS sirva páginas directamente del caché, sin invocar a PHP.

Ejemplo práctico

Para comprobar el rendimiento de estos CMS en cuanto al caché los hemos instalado en una estación de trabajo con las siguientes características: Microprocesador Pentium 4 a 3.0GHz con 1 GB de RAM. Hemos utilizado los servidores: Apache 2, PHP 5 y MySQL 5.

Se descargó la última versión estable de cada uno de estos gestores de contenido, instalándose con las opciones por defecto y creándose en cada uno sólo tres páginas con contenido idéntico.

Utilizamos la herramienta de Apache 2, ab para medir la cantidad de peticiones por segundos que son capaces de servir estos gestores de contenido, con caché activado y desactivado. Ab se configuró para realizar 1000 solicitudes de páginas con 5 de ellas concurrentes.

Es importante destacar que la herramienta ab2 no solicita imágenes ni archivos CSS, sólo son obtenidas las páginas HTML generadas dinámicamente. Para la comprobación de WordPress con caché se utilizó la extensión WP-Super Cache.

Nuestra prueba nos arrojó los resultados siguientes:

CMSs

Como podemos apreciar sin activar el caché de estos CMS Joomla queda por encima con 21.06 peticiones servidas por segundo, le sigue Drupal con 15.24 y queda rezagado WordPress con 7.32.

Esta situación cambia completamente cuando les activamos el caché quedando arriba WordPress con 85.65 peticiones procesadas por segundo, luego Drupal con 68.87 y finalmente Joomla con 32.37.

En otras palabras; haciendo uso del caché en estos gestores de contenido: Jooma mejora su rendimiento procesando 11.31 peticiones por segundo más que sin caché. Drupal optimiza sus respuestas, sirviendo 53.63 páginas por encima. WordPress sirve 78.33 más páginas con la extensión para caché activada.