Sacando brillo al servidor
Esta tarde he estado dándole un repaso a uno de los servicios más importantes de blackshell: la web.
Los cambios no se deben notar, vamos. Aunque un poco sí:
$ curl -I http://blackshell.usebox.net/ HTTP/1.1 200 OK Connection: close Date: Wed, 06 Jan 2010 22:58:08 GMT Server: Cherokee/0.99.39 (UNIX) X-Powered-By: PHP/5.3.1 Content-type: text/html
Las novedades son:
- PHP 5.3.1: hacía tiempo que tenía pendiente actualizar a
PHP5, y me venía manejando con4.4.1(+ parches).Es algo que no me gusta de
PHP: dependes del soporte del distribuidor de tu sistema, porque el fabricante no mantienen ramas viejas, y no tienes más remedio que convivir con las incompatibilidades entre versiones.Esto lo sufrimos en el trabajo, con
PHP 5.1.6soportado porRed Hat, pero hay aplicaciones web que nos pidenPHP 5.2o superior, lo que resulta muy problemático... porque no está soportado por el distribuidor del sistema. - Cherokee Web Server: este ha sido un cambio bastante arriesgado, pero que creo que a medio plazo me va a aportar muchas satisfacciones.
Aparte de
Apache, he trabajado con thttpd y con lighthttpd. ACherokeele tenía muchas ganas hace tiempo, y he decidido dar el salto.
La parte de PHP no ha sido muy traumática, pese a tener que pasar a de mod_php a FastCGI (para poder usar Cherokee), y a los cambios que tiene PHP5 (poco me ha afectado, porque la programación en mi blog es bastante sencilla).
Lo que tiene más miga es el paso a Cherokee, porque mi configuración de Apache era bastante elaborada (fruto del paso del tiempo :D).
Algunas cosas se han quedado por el camino apuntadas en el TODO, pero todo lo importante está funcionando y me está dando muy buenas sensaciones (la administración web es bastante versátil: he hecho cosas complejas sin leer una linea de documentación :P).
La única pega que me dejo, por ahora, es que no he conseguido que los encoders funcionen, y no estoy sirviendo las páginas ni con gzip ni con deflate, lo cual es un problema por el ancho de banda que tengo.
Seguiré investigando y comentando la jugada, que ya ha sido una tarde productiva :).
Actualización: nada, que soy un ceporro. Los encoders están bien, soy yo que estaba probando mal :P. El cambio que noto al servir la página puede ser debido al FastCGI, seguiré investigando.
Actualización 2: que hay que poner un login class al servidor que aumente el valor por defecto de descriptores de fichero permitidos (como ya me pasó con MySQL :S). Me he acordado por las malas esta tarde, cuando el servidor ha tenido un pico de carga.
¿Con Apache esto no pasa? No, porque usa un pool de procesos, así que cada proceso tiene un número de ficheros abiertos relativamente bajo (aunque a cambio pagamos más memoria/CPU, porque tenemos más procesos grandes corriendo).
Si no me equivoco, Cherokee es multi-hilo, así que todos los hilos parten del mismo proceso y comparten ese límite en el número de ficheros abiertos. Por defecto en la clase por defecto en OpenBSD es 128, demasiado bajo para la carga (tampoco mucha) que tenía esta tarde el servidor.
Actualización 3: ¡cuidado! Cherokee intentará usar los descriptores indicados en kern.maxfiles, y si su login class tiene un valor inferior, podemos tener problemas. Así que la clase para Cherokee tiene que tener de límite el máximo indicado por el kernel.
Sería genial que Cherokee nos dejara indicar a su arranque el número máximo de descriptores que queremos que use, sin pasarnos del máximo indicado en el kernel (claro).
Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 15 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.