¿Memcached o APC para tu sitio Joomla!?

⚠️ Nota importante

Este artículo tiene más de un año. La tecnología evoluciona rápido, por lo que algunos contenidos o instrucciones pueden estar desactualizados. Recuerda buscar información reciente y actualizada.

¿Cuáles son las diferencias entre APC Y Memcached? ¿Cuáles ventajas de cada uno? Ya sabemos ambos son gratuitos y de código abierto pero, ¿cuál le conviene más a mi sitio web en Joomla!? En este artículo explicaré las características y beneficios de cada uno de ellos para que tengas una mejor base para decidir cual implementar en tu sitio. 

En primer lugar es importante aclarar que no todos los proveedores de alojamiento web (web hosting) incluyen Memcached y/o APC en todos sus paquetes. Por esta razón el primero paso es consultar a tu proveedor si tiene alguno o ambos implementados en el servidor que estás utilizando y si no fuera así, cuál es la posibilidad de instalarlos. 

APC

APC es un cache tipo opcode. En palabras simples, almacena el resultado de la compilación de código PHP y de esta forma permite que no sea necesario compilar en cada solicitud sino que se se pueda acceder directamente el resultado cada vez y no el archivo PHP en el disco. APC no es un sistema distribuido por lo que es recomendable usarlo en aplicaciones y sitios web que sean entregados desde un único servidor.

Hasta este punto, el problema sería que en un sitio Joomla! serviría de muy poco que APC gestione cache porque ¿donde se almacenan otros archivos e información? En este caso, APCu, desarrollado por Joe Watkins, es una versión de APC que incluye cacheo de archivos y está diseñado para funcionar junto con OpCache. 

APC En Joomla!

Para habilitar este sistema en Joomla! primero debes ir habilitarlo en la opciones de PHP del cPanel. Deberás habilitar la opción que se resalta en la siguiente imagen:

Después deberás definir el tamaño apropiado del bloque de memoria asignado a APC. En la mayoría de los casos se recomiendan 64 MB pero si tienes dudas puedes consultarlo directamente con tu proveedor de hosting. 

Una vez asignado el bloque, debes activar APC en la Configuración Global de Joomla!, específicamente en la pestaña de Sistema. 

Ventajas

Diferentes mediciones han mostrado que APC es más rápido que Memcached. Evidentemente, ambos tienen características que los diferencian y no es posible asegurar que APC sea mejor para todos los casos, sin embargo, es muy probable que APC sea la mejor opción para gestión de cache en la mayoría de sitios basados en Joomla! 

Memcached

Memcached es un sistema de cacheo de objetos en memoria distribuidos, posee un alto rendimiento y básicamente almacena en memoria pequeños fragmentos de datos (cadenas y objetos) que se crean como resultado de solicitudes a la base de datos o renderizado en general de una página web. Se considera que tiene un diseño relativamente simple, facilita el desarrollo y resuelve muchos problemas relacionados con grandes cantidades almacenamiento utilizado por cache. 

Por su misma definición, el caché generado por Memcached puede ser compartido entre múltiples servidores y esta es precisamente una de las mayores ventajas de este módulo ya que es posible contar con varios servidores todos con Memcached activo  de forma que se distribuye la carga entre ellos. 

Memcached en Joomla!

Para activar Memcached en tu sitio Joomla! primer debes verificar que el módulo se encuentre activo en las opciones de PHP en el cPanel de tu proveedor de hosting. 

Una vez verificado lo anterior debes ir a la Configuración Global de Joomla! e ingresar a la pestaña Sistema. Allí, en la opción Cache Handler debes elegir Memcached. 

El puerto y host lo debes configurar de acuerdo al servidor que uses por lo que esta información debes solicitarla directamente al proveedor. El tiempo y cache de sistema puedes configurarlo tal y como lo usabas antes de habilitar Memcached. Para mejores resultados es recomendable elegir un tiempo relativamente alto para tu sitio y cacheo progresivo y no conservador. 

Ventajas de Memcached

Una de las principales ventajas que pude encontrar de Memcached, específicamente para sitios Joomla!, es que también se puede configurar para gestionar las sesiones en lugar de la base de datos. En este caso sería útil para reducir la carga sobre la base de datos en sitios que tengan muchos usuarios. Memcached en general reduce la cantidad de solicitudes a la base de datos.

Memcached debería ser utilizado solo si tienes una aplicación web que cuyo estado debe estar sincronizado en múltiples servidores, de otra forma, lo recomendable es utilizar APC 

En términos generales, Memcached beneficia a la base de datos y APC la ejecución de scripts PHP. Memcached es mejor para sistemas distribuidos (múltiples servidores) y APC es más rápido en sistemas no distribuidos. Si tienes alguna duda, corrección o sugerencia para mejorar el artículo, puedes compartirla por medio de los comentarios. 

Fundador
Seguidor de Jesús. Escribo artículos en mi tiempo libre sobre temas de tecnología que me interesan.