Contenido

WP-Cache, 1BlogCacher o SuperCache, ¿Cual escojer?

12 Feb

+ 39

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.

¿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]

memoria_consumida1.pngpeticiones_completadas1.pngtiempo_por_peticion.png

Sacar conclusiones vosotros mismos. 

Más información

Contarme experiencias y opiniones…

  • Yo he probado wp-cache,1BlogCacher y SuperCaché y tengo que reconocer que SuperCaché es el que mejor resultado me ha dado.

    Pero vamos, para gustos los colores…

  • Por cierto, activando el gzip me da la sensación que consume más memoria, ¿¿puede ser??

  • A mi me da desconfianza por el tema de los plugins.. tengo miedo de que me de algún problema con estos..

    ¿puedo instalar un plugin de chaché o mis miedos son fundamentados?

    Suerte

  • @Nico: No deberías tener miedo de instalar ningún plugin. Solo tienes que informarte bien antes de hacerlo. Lee y relee, posts y comentarios sobre él y encontrarás los fallos y virtudes antes de tenerlo activo.

    Saludos

  • Está claro que 1blogcacher según tus pruebas es el mejor… lo recomiendas para instalarlo entonces? son compatibles los adservers con este tipo de plugins?

  • #5 David, qué curioso encontrarnos por aquí 🙂 Si no entiendo mal, 1blogcacher sería el «peor», está medido en peticiones respondidas por segundo, no en tiempo por completar cada petición.

    Que yo sepa, ninguno de ellos tiene problemas ni con adservers ni con adsense, aunque no entiendo lo que dice Andrés de poder introducir código estático en WP-Cache. ¿No es lo mismo que dejarlo en el .php y que se cachee?

    En mi caso particular, en uno de los servidores sólo he podido utilizar 1blogcacher, porque tanto wp-cache como supercache me dan el siguiente problema:

    “Couldn’t write to: /var/www/vhosts/dominio.comhttpdocs/wp-content/cache/wp-cache-bade0af957b50b069f1c002b8a0dd3d0.html”

    He probado ha hacer un 777 al directorio, poner propietario apache a scripts y directorios e incluso desactivar PHP Safe mode, en algunos sitios he leído que podía ser por eso, pero aún así sigue sin funcionar (es un CentOS)

    En otro servidor lo he probado y sin problema. Sobre cuál va mejor. estoy de acuerdo que cada uno debe hacer sus propias pruebas, sobre todo por problemas como el consumo de memoria. Supercache tiene la ventaja teórica de reducir bastante los procesos php, por ejemplo.

  • @Daniel Seijo: A lo que me refiero es que, en mi caso, el uso de adsense es únicamente para los visitantes de Google. Por lo tanto, no puedo cachear las porciones de código referentes a adsense, ya que en algunos casos me encontraré con que usuarios directos se encuentran adsense y usuarios de Google no se encuentran publicidad.

  • Hombre Daniel!! 🙂 ya ves que tb, además de mi «trabajo» en la publicidad online, tengo inquietudes bloqueras, jeje. Al respecto del plugin, pues si que estoy yo bien… creía que el tiempo por petición era el importante, que no se tardara en responderla. Un abrazo!!
    Ah! y gracias, Andrés, por la comparativa.

  • Hola!, mi host (hostgaor) va a actualizar a php5 y mysql5 (la versión exacta no la sé) en breve y me gustaría saber si podré seguir usando el «wp-caché 2.1.2» que es con el que estoy desde hace meses.

    ¿De no ser así tendría alguna otra opción?.

    Espero que alguien me responda, muchas gracias.

  • Hola!, mi host va a actualizar a php5 y mysql5 (la versión exacta no la sé) en breve y me gustaría saber si podré seguir usando el «wp-caché 2.1.2» que es con el que estoy desde hace meses.

    ¿De no ser así tendría alguna otra opción?.

    Espero que alguien me responda, muchas gracias.

  • Cuanto es el tiempo correcto de expiración?. Es suficiente con os 3.600 que trae por defecto o se puede colocar un mayor tiempo?

    Saludos!

  • Voy a probar el SuperCaché, tengo servidor propio, es decir una máquina que no es realmente un servidor y todo lo que le pueda ahorrar va a venir bien…

    Buena artículo! 🙂

  • If you’d like to test out an alpha of Viper Cache, I’d love to get some feedback for it. Thanks.

  • Anieto, entonces tu cual usas?

    Yo tengo el WPCACHE, pero es que no se si poner el otro…

  • @Alf: Yo estoy usando 1BlogCacher, aunque aconsejo que hagas pruebas con los diferentes plugins antes de usar uno u otro. Más que nada por que cada configuración es un mundo y pueden variar los resultados.

  • No es «escojer» es «escoger», te referencie en Carrero y no lo corregí, pero me lo han dejado en los comentarios para que puedas arreglarlo 😉

  • Hola,

    Alguno dice que según los datos 1blogcacher es el mejor, sin embargo segun yo entiendo 45 Peticiones completadas son muy pocas, sobre todo cuando los demas pasan las 300.

    Es correcto ese dato?? en ese caso no seria el peor de todos.

    Gracias

  • @superisc: Al parecer ab (la aplicación con la que hice las pruebas) no detecta las cabeceras 304 Not Modified como respuestas válidas. Y por ese motivo el resultado obtenido por 1BlogCacher no parece funcionar correctamente, esta tarde haré una prueba eliminando dichas cabeceras a ver que tal se comporta.

    Saludos

  • ¿Vas a hacer la comparativa de nuevo con la version 2.5?

  • A Daniel Seijo el problema de permisos en Centos yo lo apuntaría a selinux, mira en /var/log/audit/audit.log

    Un saludo.

  • Mira yo tengo una duda con esto de la cache, a mi alguna vez se me ha estado bloqueando el blog (por lo del tema de la quota de CPU) y antes de tener que cambiar de hosting con todo lo que ello supone sobre todo por el tema de la transferencia (unos 100Gb mensuales actualmente) instale el plugin pero estoy mosqueado con AdSense, me da la sensación de que me baja el rendimiento de este, por ejemplo llevo unas 72h sin clics, desactivo el plugin y en 4 horas recibo 2 y encima de madrugada…

    No sé, esto que me pasa puede tener algo que ver con WP-SuperCache? o es una simple casualidad?

    Gracias por tu tiempo.

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.