Cualquier esfuerzo encaminado a optimizar WordPress merece la pena, aunque  de vez en cuando tendremos que ser creativos. 

En este artículo veremos como sacar provecho de Memcached para acelerar la carga de nuestras web. Aprenderemos a instalarlo en nuestro VPS y como hacer que WordPress se aproveche de ello.

¿Que es Memcached?

Memcached es un sistema para caché basado en memoria, diseñado por Danga Interactive. El almacenamiento en la RAM, mejora significativamente el tiempo de respuesta del servidor al reducir la necesidad de acceder a almacenamiento más lento como puede ser una base de datos o el disco disco duro.

El funcionamiento de memcached es sencillo: los dato se guardan en una tabla, asociados a una clave única. Las aplicaciones comprueban si el valor desado existe en la tabla, si lo encuentran lo utilizan y en caso contrario lo almacenan para una futura petición.

Memcached tiene una estructura cliente-servidor. Es decir para aprovecharnos su potencia tenemos que instalar el software servidor en nuestra VPS o solicitarlo a nuestro proveedor en el caso de un hosting compartido.  También debemos activar los módulos correspodientes a la versión de PHP que tengamos instalada.

Su utilidad va más allà de optimizar WordPress, en realidad cualquier CMS o aplicación puede aprovechar su funcionalidad.


Implementando Memcached

Instalación de Memcached

La instalación de Memcached es sencilla. Por ejemplo en un sistema Debian/Ubuntu usaremos el siguiente comando:

sudo apt-get update
sudo apt-get install -y php-memcached memcached

Con esto comenzará la instalación de memcached en el servidor, quedando configurada como uno de los servicios que se inician durante el arranque del sistema. En el mismo comando instalamos el cliente para PHP.

¿Cómo comprobar si memcached funciona correctamente? Para ello recurrimos a nuestro amigo phpinfo() y deberíamos obener algo similar a una vez reiniciado el servidor apache.

Configuración de Memcached

La configuración de Memcached es sencilla. Para hacerlo editamos el archivo memcached.conf

sudo nano /etc/memcached.conf

Las principales directivas son

  • -m (memoria): Indicaremos el valor máximo en MB
  • -p (puerto): El puerto que utlizará el servicio
  • -l (IP); La dirección IP en la que el servidor atenderá peticiones.

El puerto y la IP los usaremos para configurar los clientes que se conecten al servidor.

Podemos monitorizar memcached con el script memcache.php.

Esta es una herramienta muy útil, que además de visualizar las estádísticas, nos permite vaciar la caché y administrar los datos almacenados.

El script tiene  algunos parámetros de configuración, los principales son:

  • ADMIN_USERNAME: usuario que usaremos para el acceso
  • ADMIN_PASSWORD: contrseña de acceso
  • MEMCACHED:SERVERS: dirección IP y puerto del servidor

Simplemente editamos el script antes de subirlo a nuestro servidor. Una ve lo hemos hecho tendremos acceso a todas las estadísticas de funcionamiento


Como optimizar WordPress con WP-FFPC

WordPress no tiene soporte nativo para Memcached, pero varios plugins de cache como W3 Total Cache lo incorporan. Solo tenemos que seleccionar la opción correspondiente al configurar nuestro plugin de cache.

¿Y si el plugin que uso no tiene soporte para Memcached? Mi recomendación en este caso es utilizar WP-FFPC. Es un plugin gratuito y  ligero que podemos utilizar para el caché de páginas. Lo descargamos desde el repositorio y lo activamos.

WP-FFPC no comienza a funcionar de inmediato. Es necesario configurarlo correctamente y guardar la configuración para que comience a hacer su trabajo. Vamos a por ello:

Lo primero que debemos hacer es comprobar que tenemos establecido define('WP_CACHE', true); en nuestro wp-config.php.Si fuese ese nuestro caso, veremos una notificación el el panel de administración. 

Repasemos los parámetros:

Cache Type

  • Select backend - Seleccionamos PHP memcached
  • Expiration tiem for ... - Los segundos durante loc cuales será válida la cache en el servidor, sin que sea necesario acceder al almacenamiento externo.
  • Browser cache expiration time of ... - Tiemp que le indicaremos al navegador. Aquí manda Google cuanto mayorsea más contento se pondrá
  • Data prefix - Identificador para los datos, recomiendo personalizarlo. 
  • Meta prefix - Identificador para las claves meta, recomiendo personalizarlo.
  • SHA1 hash key - Recomiendo activarlo, así reducirmos la longitud de las claves alamacenadas

El resto de parámetros podemos dejarlos en sus valores por defecto-

Backend settings

  • Hosts: Parámetros de conexion al servidor en el formato IP:puerto de conexión. Si se utliza más de un servidor, usamos comas para separarlos. Si accedemos a un servicio externo (por ejemplo en un hosting compartido) rellenaremos las credenciales corresponidentes.
  • Enable memcached binary mode: Si nuestro servidor lo soporta, lo activamos para mejorar el rendimiento

Otras configuraciones

Podemos dejarlas en sus valores por defecto, aunque puede ser interesante precachear toda nuestra web periodicamente.

Una vez guardadas las configuraciones debemos notar la mejoría en el rendimiento de nuestra web, Solo queda monitorizar el funcionamiento del servidor y si fuese necesario ajustar su configuración.

En la parte inferior tendremos botones para vaciar la cache, precargarla de forma puntual o restablecer la configuración a sus valores por defecto.

Optimizar WordPress - caso práctico

Veamos un ejemplo real de mejora del rendimiento

Se trata de una web que incluye 2 sliders (Revolution y OWL) y videos en la misma página. Su configuración mediante W3 Total Cache era una pesadilla, con resultados francamente malos. Básicamente o no se activaban las optimizaciones o se dañaba el aspecto visual. Resultados similares se obtenían con los plugins de cache gratuitos mas conocidos.

La solución adoptada fue Autoptimize con Async JavaScript del mismo autor. Los resultados mejoraron un poco

Instalamos y activamos Memcached en el servidor, utlizando  WP-FFPC para acelerar la web. Finalmente emplamos BJ Lazy Load para la carga retrasada de las imágenes y los iframes de vídeo.

Los resultados hablan por sí solos

Como vemos, los tiempos de respuesta mejoran significativamente. Y no ha sido necesario ir a un servidor más potente, es decir podemos optimizar WordPress, con tan solo utilizar mejor los recursos disponibles.


Conclusión

Quiero destacar que cada caso concreto es diferente, hay muchos factores a tener en cuenta. Habrá casos en que baste con W3 Total Cache, WP Rocket,  o más probable que una combinación de varios complementos. No queda más remedio que tener paciencia e intentar ser creativos. Solo probando encontraremos la combinación para optimizar WordPress que resulte apropiada en nuestro caso.

Sin embargo, utilizar Memcached nos permite, en cualquier caso, aprovechar al máximo los recursos disponibles y siempre mejorará el rendimiento de nuestro servidor. Aunque, no siempre con resultados tan espectaculares.

¿Cual es tu experiencia optimizando tu servidor? Unete a nuestra discusión y enriquece el contenido de este artículo

0 0 votes
Valoración del artículo
Suscribir
Notificar de
guest
0 Comentarios
Newest
Oldest Most Voted
Inline Feedbacks
View all comments