Por problemas técnicos he vuelto a hacer las pruebas, al parecer wp-cache no quería desactivarse e interfería en los resultados de 1BlogCacher. Siento las molestias.
Guillermo Carvajal de La brujula verde, nos muestra hoy 1BlogCacher, un sistema de cacheo para WordPress basado en WP-Cache y HTML Cache Creator.
En general la idea de 1BlogCacher, es la misma que los plugins anteriores, evitar que el servidor tenga que volver a realizar todas las peticiones que componen el proceso de creación de una página. Cada vez que llegamos a un blog (a cualquier entrada), este realiza una serie de comprobaciones, consultas a la base de datos, operaciones de transformación,… para mostrarnos el resultado, estos plugins evitan eso almacenando una página HTML con el resultado de la primera visualización.
El sistema de caché a groso modo funciona de la siguiente forma:
Si fichero_cacheado existe
mostrar fichero
sinó existe
crear página
almacenar en fichero_cacheado
fin si
Evidentemente, podemos poner comprobaciones, como el tiempo que tiene el fichero_cacheado
o si queremos un sistema de borrado de caché,… para completar y perfeccionar el sistema.
1BlogCacher
Copio y pego las características directamente de la página del plugin.
- Compatible con WordPress 1.5 y superiores (probado en 1.5, 2.0, 2.1 y 2.2).
- Instalación/configuración rápida y sencilla.
- Portable: edita el archivo para tu conveniencia y úsalo en cualquier sitio.
- Los archivos cacheados se guardan en archivos HTML, y se organizan en directorios que emulan las urls, así que es fácil mostrar el contenido de los archivos y organizarlos (por ejemplo borrar la caché de una entrada específica, de todas las categorías. de todas las búsquedas, de todas las entradas de una fecha determinada, etc.)
- Si «safe_mode» está habilitado, el plugin todavía funcionará, creando todos los archivos en el directorio de caché.
- Opción para borrar todos los archivos cacheados (o sólo los espirados) desde el panel de WordPress.
- Tiempo de expiración para los archivos cacheados.
- Cadenas de texto aceptadas y rechazadas para controlar exactamente las urls a cachear.
- User Agents rechazados para evitar sobre-cacheado proveniente de buscadores.
- Los archivos cacheados (incluyendo la caché de la página inicial) serán actualizados cuando las entradas y los comentarios serán publicados/editados/borrados.
- Opción de incluir un encabezado «Expires» para habilitar la caché del navegador (una velocidad de respuesta aún más rápida y menos peticiones de página.
- Sólo las peticiones GET serán cacheadas.
- Los usuarios registrados no ven páginas cacheadas.
- La super-recarga del navegador (Ctrl+F5) evita las urls cacheadas.
- Compatible con la compresión Gzip.
Instalación
La instalación es igual a la de cualquier plugin para WordPress, siendo así más fácil que la necesaria para disfrutar de WP-Cache.
- Descargar el fichero
- Descomprimir y editar si es necesario (tiene una serie de defines para personalizar su ejecución).
- Subir al directorio wp-content/plugins/
- Crear un directorio (previamente definido en el fichero) con permisos 777.
- Activar y disfrutar.
1BlogCacher vs Wp-Cache
He estado haciendo unas pruebas de rendimiento, bastante rudimentarias, con las que hacernos una idea de las ventajas que en este punto nos pueden ofrecer estos plugins.
Escenario
Para hacer las pruebas, he usado este blog (https://www.anieto2k.com) eliminando la caché generada por cada plugin en cada una de las pruebas. Las pruebas se han realizado con ab, aplicación que nos permite hacer benchmark de sitios web, desde el macbook y con las mismas características para los dos plugins.
ab -n100 -c5 http://URL/
Lanzamos 100 peticiones de 5 usuarios recurrentes.
Se han realizado 2 pruebas, 1 sobre el index, tanto para wp-cache como para 1BlogCacher. Y otra sobre un post al azar (el mismo para los dos plugins).
Estos son los resultados para la prueba sobre el index
//1BlogCacher ab -n100 -c5 https://www.anieto2k.com/
This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ Benchmarking www.anieto2k.com (be patient).....done Server Software: Apache/2.2.4 Server Hostname: www.anieto2k.com Server Port: 80 Document Path: / Document Length: 33758 bytes Concurrency Level: 5 Time taken for tests: 46.032 seconds Complete requests: 100 Failed requests: 0 Broken pipe errors: 0 Total transferred: 3428468 bytes HTML transferred: 3398673 bytes Requests per second: 2.17 [#/sec] (mean) Time per request: 2301.60 [ms] (mean) Time per request: 460.32 [ms] (mean, across all concurrent requests) Transfer rate: 74.48 [Kbytes/sec] received Connnection Times (ms) min mean[+/-sd] median max Connect: 170 399 363.0 351 2899 Processing: 1161 1813 355.6 1771 3026 Waiting: 917 1813 355.3 1770 3026 Total: 1161 2212 461.4 2134 4123 Percentage of the requests served within a certain time (ms) 50% 2134 66% 2244 75% 2359 80% 2396 90% 2780 95% 3212 98% 4078 99% 4123 100% 4123 (last request) //Wp-Cache ab -n100 -c5 https://www.anieto2k.com/ This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ Benchmarking www.anieto2k.com (be patient).....done Server Software: Apache/2.2.4 Server Hostname: www.anieto2k.com Server Port: 80 Document Path: / Document Length: 30919 bytes Concurrency Level: 5 Time taken for tests: 49.596 seconds Complete requests: 100 Failed requests: 99 (Connect: 0, Length: 99, Exceptions: 0) Broken pipe errors: 0 Total transferred: 3132229 bytes HTML transferred: 3095767 bytes Requests per second: 2.02 [#/sec] (mean) Time per request: 2479.80 [ms] (mean) Time per request: 495.96 [ms] (mean, across all concurrent requests) Transfer rate: 63.15 [Kbytes/sec] received Connnection Times (ms) min mean[+/-sd] median max Connect: 95 380 138.9 381 693 Processing: 888 1938 555.4 1852 4088 Waiting: 650 1938 555.4 1852 4088 Total: 888 2318 585.3 2223 4492 Percentage of the requests served within a certain time (ms) 50% 2223 66% 2406 75% 2519 80% 2588 90% 2827 95% 3846 98% 4296 99% 4492 100% 4492 (last request)
Como podemos ver wp-cache, demuestra ser un poco más rápido sirviendo el HTML. Aunque en las pruebas me ha llamado la atención que wp-cache devolviera 99 request fallidas (de 100) frente a las 100 peticiones correctas obtenidas por 1BlogCacher.
En las nuevas pruebas, sin la interferencia de wp-cache en los resultados, vemos que 1BlogCacher obtiene mejores resultados, mejorando en 3 segundos la respuesta a 100 peticiones de 5 usuarios simultaneos.
En el post aleatorio (enlace al post)
//1BlogCacher
ab -n100 -c5 https://www.anieto2k.com/2007/08/09/el-html-de-los-futuros-blogs-html5/
This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking www.anieto2k.com (be patient).....done
Server Software: Apache/2.2.4
Server Hostname: www.anieto2k.com
Server Port: 80
Document Path: /2007/08/09/el-html-de-los-futuros-blogs-html5/
Document Length: 20277 bytes
Concurrency Level: 5
Time taken for tests: 33.878 seconds
Complete requests: 100
Failed requests: 0
Broken pipe errors: 0
Total transferred: 2087468 bytes
HTML transferred: 2050136 bytes
Requests per second: 2.95 [#/sec] (mean)
Time per request: 1693.90 [ms] (mean)
Time per request: 338.78 [ms] (mean, across all concurrent requests)
Transfer rate: 61.62 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 136 325 302.2 295 3160
Processing: 982 1334 411.4 1231 3056
Waiting: 798 1333 411.3 1231 3055
Total: 982 1658 505.0 1544 4324
Percentage of the requests served within a certain time (ms)
50% 1544
66% 1623
75% 1730
80% 1860
90% 2329
95% 2518
98% 3520
99% 4324
100% 4324 (last request)
//wp-cache
ab -n100 -c5 https://www.anieto2k.com/2007/08/09/el-html-de-los-futuros-blogs-html5/
This is ApacheBench, Version 1.3d <$Revision: 1.73 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/
Benchmarking www.anieto2k.com (be patient).....done
Server Software: Apache/2.2.4
Server Hostname: www.anieto2k.com
Server Port: 80
Document Path: /2007/08/09/el-html-de-los-futuros-blogs-html5/
Document Length: 20307 bytes
Concurrency Level: 5
Time taken for tests: 31.626 seconds
Complete requests: 100
Failed requests: 96
(Connect: 0, Length: 96, Exceptions: 0)
Broken pipe errors: 0
Total transferred: 2064186 bytes
HTML transferred: 2027816 bytes
Requests per second: 3.16 [#/sec] (mean)
Time per request: 1581.30 [ms] (mean)
Time per request: 316.26 [ms] (mean, across all concurrent requests)
Transfer rate: 65.27 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 104 282 98.9 285 524
Processing: 1050 1290 329.2 1235 2531
Waiting: 807 1290 329.1 1234 2532
Total: 1050 1572 326.6 1517 3014
Percentage of the requests served within a certain time (ms)
50% 1517
66% 1595
75% 1662
80% 1712
90% 1929
95% 2332
98% 2593
99% 3014
100% 3014 (last request)
En la prueba de un post, obtenemos los mismo resultados. Wp-Cache es más rápido sirviendo el HTML pero es curioso obtener 96 de 100 peticiones fallidas.
En las nuevas pruebas los resultados han sido similares, wp-cache muestra más rápido las respuestas de HTML para entradas concretas.
Conclusiones
Los resultados son bastante similares, teniendo una diferencia de 2-3 segundos en los tests realizados. Esto puede ser debido al sistema de directorios que 1BlogCacher crea para almacenar los fichero cacheados y las comprobaciones para que los usuarios registrados no perciban el cacheo de páginas. Estas mejoras que diferencian un plugin de otro marcan la diferencia y nos obliga a sopesar si creemos necesario sacrficar 2 seg (en 100 peticiones) para disfrutar de las opciones que 1BlogCacher nos ofrece. O por otro lado, quizas nos interese carecer de ciertas funcionalidades y server las páginas algo más rápido.
Viendo los resultados obtenidos por la segunda tanda de pruebas, wp-cache empieza a verle las orejas al lobo con un competidor de altura. Un script realmente sencillo de instalar y que rinde de forma similar o en algunos casos mejor. Sin duda estamos frente a un script que va a dar mucho que hablar.
Disculpas
Por motivos que aún desconozco, al hacer las pruebas, wp-caché no terminaba de desinstalarse y se estaba re-cacheando el resultado, ocasionando problemas y datos poco fiables para 1BlogCacher. Siento todas las molestias ocasionadas y sobretodo le pido disculpas a Javier por no haber hecho las pruebas más estrictamente.
Actualización:
Alex de Buyacorp hace nuevas pruebas y obtiene resultados bastante interesantes.
16 comentarios, 3 referencias
+
#