Para aligerar considerablemente el servidor usamos sistemas de caché encargados de generar contenido estático sobre contenido dinámico con el fín de realizar únicamente las peticiones necesarias para mostrar el contenido.
Por poner un ejemplo, para que nos enteremos de como funciona un sistema de caché, veremos como «Pepito y Juanito» entran a la web de «Miguelito».
Una historia de cacheo
Pepito, se levanta por la mañana con ganas de leer la ultima noticia que Miguelito a publicado, como es muy temprano seguro que será el primer usuario en visitar la página de su amigo. Mientras se toma el necesario café para soportar el largo día que por delante comienza a despuntar, abré su navegador y tecléa la dirección de su amigo, pulsa intro y espera.
En ese momento el servidor de Miguelito, comienza a desperezarse y recibe la petición de Pepito. Lo primero que hace es comprobar que la copia estática exista y que esté al día, evidentemente esa copia no es correcta, está caducada. Por lo tanto lanza la página dinámica con todas las peticiones que necesita para generar el HTML estático y almacenarlo en el disco duro.
Pepito, no se ha percatado, pero su petición ha desencadenado en una serie de procesos internos que han hecho que la respuesta tarde 100-200 milisegundos más que el 90% de los casos. Lee la noticia y se va para el trabajo contento de haber leido lo que Miguelito ha publicado.
Dos minutos más tarde, Juanito se levanta y se apresura para ponerse tras el PC y leer la última noticia del gran Miguelito. Al teclear la dirección y pulsar intro, el navegador empieza a solicitar la carga de la página.
En ese momento el servidor de Miguelito está ya despierto y recibe la petición, comprueba la existencia del fichero estático y la fecha de expiración definida en el fichero de configuración que Miguelito configuró. Al existir y cumplir todos los requisitos, el servidor envía rápidamente el contenido estático al servidor sin molestar al resto del servidor dejandoles descansar hasta la próxima vez que el contenido cambie o que expiren los ficheros estáticos.
Como podemos ver en esta historia, el sistema de caché consigue que nuestro servidor trabaje menos o podamos destinar ese tiempo de procesador en cosas más productivas.
Caché en WordPress
WordPress al ser un CMS basado en base de datos, realiza una infinidad de peticiones a base de datos, que sumado a las validaciones necesarias para el funcionamiento del blog, se hace más que necesario usar un sistema de caché para aligerar la cantidad de datos que podemos llegar a hacer trabajar. Un blog con cierto nivel de visitas puede ver perjudicado su rendimiento por no usar un sistema de caché correctamente, por ese motivo tenemos soluciones interesantes en forma de plugin para que nuestro blog aguante los embistes de los usuarios.
- WP-Cache
- 1BlogCacher
- SuperCache
- ViperCache (en proceso de creación)
¿Cual es el mejor?
Pues la verdad es que es dificil decidirse entre uno u otro, ya que todos usan la misma metodología. Tenemos que tener en cuenta otras consideraciones a la hora de decidirnos por uno u otro. WP-Cache, es el primero que apareció y desde entonces no ha cambiado mucho, permite la insercción de porciones de texto dinámico, ideal para insertar el código adsense. Por otro lado 1BlogCacher tambien dispone de esta propiedad, y además crea un arbol de directorios simulando las rutas de los permalinks, haciendo aún más rápida su lectora. Sin olvidarnos la opción gzip, que mengua el tamaño de los datos enviados.
SuperCache presume de aguantar el famoso efecto Digg (2 en portada y mención en Slashdot) con más de 200.000 páginas vista en un día sobre un servidor bastante normalcito. Tambien dispone de compresión gzip, lo que hace que bajen los tiempo de carga. ViperCache, aún no hay ningún fichero para probar, pero el autor comenta que ha llegado a ser hasta 3 veces más rápido que WP-Cache… habrá que verlo.
En las pruebas realizadas en mi server, las cifras no han dado como vencedor a ninguno en concreto. Si tengo tiempo esta tarde haré unas pruebas desde allí.
Plugins a pruebas
He realizado las prueabas 5 veces con cada plugin y los mejores resultados las 5 son las que he usado para confeccionar dichos gráfico y datos.
/*
5 usuarios concurrentes durante 30 segundos
*/
ab -c5 -t30 http://URL_pruebas
WP-Cache
Memoria: 193.1 KB
Peticiones completadas: 313
Tiempo por petición: 10.43 [#/sec]
1BlogCacher
Memoria: 329.6 KB
Peticiones completadas: 45
Tiempo por petición: 1.50 [#/sec]
SuperCache
Memoria: 5395.2 KB
Peticiones completadas: 350
Tiempo por petición: 11.66 [#/sec]
Sacar conclusiones vosotros mismos.
Más información
- Comparativa 1BlogCacher vs WP-Cache (Buyacorp)
- Comparativa 1BlogCacher vs WP-Cache(Sigt)
- Recopilación de la comparativa (Yukei)
Contarme experiencias y opiniones…
22 comentarios, 17 referencias
+
#