Programar en Linux

Franco Catrin fcatrin en tuxpan.com
Lun Oct 23 19:09:05 CLST 2006


El lun, 23-10-2006 a las 15:30 -0300, Ricardo Mun~oz A. escribió:
> Franco Catrin wrote:

> > Con todo listo para operar tenemos casi 32MB de memoria ocupada, y
> > mapeado un poco mas de 256MB, y con esto ya podemos hacer aplicaciones
> > escalables, distribuidas, etc.
> >
> > Como decia Horst.. el hardware es mucho mas barato que las HH, en mi PC
> > aun tengo 480MB para jugar
> >   
> 
> te falto incluir la RAM que te consume tu IDE Java favorito (solo un 
> suicida desarrolla una
> aplicacion seria en Java sin un IDE)...

No tiene sentido, el IDE no lo usas en las maquinas que estan sirviendo
(produccion).

En todo caso, el IDE me ocupa lo mismo que el IDE que uso para PHP, es
Anjuta.  Aunque el mayor tiempo estoy ocupando Z4 (CASE in-house), pero
tampoco es para tanto, evolution+liferea me ocupan mas

>  pero lo realmente interesante 
> seria saber la cantidad de
> RAM necesaria para un servidor web de produccion, con digamos unas 1000 
> conexiones
> simultaneas... te quedaria RAM para jugar?? ;)

Demas, las conexiones simultaneas no ocupan "mas ram", lo que ocupa ram
son los objetos vivos, y en aplicaciones mayoritariamente stateless son
objetos muy volatiles.   El problema lo tendria si se estan calculando
1000 reportes a un mismo tiempo, pero eso simplemente lo arreglaria
cambiando la invocacion al servicio de sincronica a asincronica con una
cola de mensajes, que es parte de J2EE, como usas las colas de mensajes
en PHP? que haces en esos casos?  porque el uso de memoria deberia andar
cerca en ambas plataformas para ese tipo de requerimientos.

Si estas usando EJB por ejemplo, puedes montar otro servidor (*) y
decirle en la configuracion : mire, cuando llamen a este objeto reparta
la carga entre estos dos servidores.  Es solo configuracion, no hay que
programar.  Como haces eso en PHP?

Ademas que para manejar 1000 conexiones simultaneas ocupas mecanismos
que te permitan cambiar la forma de manejar el I/O, revisa una charla de
Max Celedon y como cambio una aplicacion Java para mejorar la
escalabilidad.

Otra cosa es que en J2EE puedes restringir el uso de recursos escasos
para que se usen en forma secuencial y no paralela, por ejemplo esas
1000 conexiones en realidad se traducirian a 300 conexiones o menos.
Todo es a nivel declarativo, tu programa es EL MISMO.

Ignoro si eso se puede hacer en PHP, asi que no puedo hablar al respecto

(*) Levantar otro servidor es tan simple como ejecutar java -jar
boot.jar http://ipdelservidorareplicar   (o similar)


Saludos
-- 
Franco Catrin L.       TUXPAN
http://www.tuxpan.com/fcatrin



Más información sobre la lista de distribución Linux