Cherokee Web Server, más rápido que Apache
Estoy asistiendo a algunas ponencias de las Jornadas de Conocimiento Libre de la UEM y hoy me he encontrado con una inesperada. Ha sido la de Álvaro López, que inició hace algunos años el proyecto Cherokee con el objetivo de mejorar el panorama de los servidores web incidiendo en la mejora del rendimiento y eficiencia.
Álvaro ha explicado las carencias del servidor Apache, basado en algunas ineficiencias heredadas de su precesor, el servidor web NCSA. Para este proyecto se empezó desde cero, sin condicionantes previos y con el objetivo de hacer un servidor lo más rápido posible. La filosofía es extremadamente modular, permitiendo incluso desactivar el módulo que lee la información del disco duro si por circunstancias es necesario.
Me han llamado poderosamente la atención algunas cosas:
– Velocidad: Hasta 6 veces más rápido que Apache sirviendo contenido estático, 3 veces más rápido con contenido dinámico.
– Facilidad de configuración: Tiene un panel de control y esta vía de configurarlo es la recomendable, aunque tiene ficheros de configuración “al uso”.
– Balanceo de carga: Cherokee puede ser incluso un balanceador de carga entre el servidor y otros servidores de aplicaciones, separando además funciones de servir contenido estático y dinámico entre servidores, aumentando extremadamente la eficiencia en la arquitectura.
He de reconocer que siempre he sido de los que he confiado ciegamente en Apache, pero ahora estoy deseando probar este. A ver si tengo resultados y publico la experiencia por aquí.
[…] Si la cosa se pone seria, siempre podemos elegir otro servidor web, tipo Cherokee. […]
Ciertamente Cherokee ha demostrado ser un servidor web muy eficiente, incluso mucho mas que Apache, para demostrarlo me remito a las pruebas, echenle un ojo.
Pruebas con Cherokee
potedebian:/# ab -n1000000 -c500 -k http://127.0.0.1:9090/
This is ApacheBench, Version 2.3
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 127.0.0.1 (be patient)
Completed 100000 requests
Completed 200000 requests
Completed 300000 requests
Completed 400000 requests
Completed 500000 requests
Completed 600000 requests
Completed 700000 requests
Completed 800000 requests
Completed 900000 requests
Completed 1000000 requests
Finished 1000000 requests
Server Software: Cherokee/1.0.8
Server Hostname: 127.0.0.1
Server Port: 9090
Document Path: /
Document Length: 535 bytes
Concurrency Level: 500
Time taken for tests: 66.916 seconds
Complete requests: 1000000
Failed requests: 0
Write errors: 0
Non-2xx responses: 1000000
Keep-Alive requests: 0
Total transferred: 882000000 bytes
HTML transferred: 535000000 bytes
Requests per second: 14944.12 [#/sec] (mean)
Time per request: 33.458 [ms] (mean)
Time per request: 0.067 [ms] (mean, across all concurrent requests)
Transfer rate: 12871.79 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 22 215.4 9 9010
Processing: 4 11 3.5 11 237
Waiting: 3 9 3.3 8 235
Total: 9 33 216.0 20 9023
Percentage of the requests served within a certain time (ms)
50% 20
66% 21
75% 22
80% 23
90% 24
95% 24
98% 25
99% 26
100% 9023 (longest request)
Pruebas con Apache
potedebian:/# ab -n1000000 -c500 -k http://127.0.0.1/
This is ApacheBench, Version 2.3
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 127.0.0.1 (be patient)
apr_socket_recv: Connection timed out (110)
Total of 87290 requests completed
se cayó.