Facendo l’ update di un’ applicazione da rails 1.1.0 a rails 1.2.0, ho
notato un aumento del memory footprint di lighttpd di circa 4Mb dai 23Mb
che era. Purtroppo la macchina su cui l’ applicazione deve girare ha
solo 64 Mb di ram e quei 4 Mb in più sono inaccettabili.
Mi devo tenere l’ applicazione in rails 1.1.0 o posso fare qualcosa?
Quei 4Mb in più con la 1.2 sono obbligatori o posso evitarli in qualche
modo (già non carico actionwebservice ed actionmailer…)?
Facendo l’ update di un’ applicazione da rails 1.1.0 a rails 1.2.0, ho
notato un aumento del memory footprint di lighttpd di circa 4Mb dai 23Mb
che era. Purtroppo la macchina su cui l’ applicazione deve girare ha
solo 64 Mb di ram e quei 4 Mb in più sono inaccettabili.
Mi devo tenere l’ applicazione in rails 1.1.0 o posso fare qualcosa?
Quei 4Mb in più con la 1.2 sono obbligatori o posso evitarli in qualche
modo (già non carico actionwebservice ed actionmailer…)?
se usi mongrel potresti risparmiare almeno una decina di mega
con sistemi alternativi tipo fastcgi.
Facendo l’ update di un’ applicazione da rails 1.1.0 a rails 1.2.0, ho
notato un aumento del memory footprint di lighttpd di circa 4Mb dai 23Mb
che era. Purtroppo la macchina su cui l’ applicazione deve girare ha
solo 64 Mb di ram e quei 4 Mb in pi� sono inaccettabili.
Mi devo tenere l’ applicazione in rails 1.1.0 o posso fare qualcosa?
Quei 4Mb in pi� con la 1.2 sono obbligatori o posso evitarli in qualche
modo (gi� non carico actionwebservice ed actionmailer…)?
Come ho scritto sopra uso lighttpd…
il che non esclude l’uso di uno o più mongrel dietro lighty quindi
se non ho capito male hai rails che gira nello stesso processo del
web server ?
Come ho scritto sopra uso lighttpd…
il che non esclude l’uso di uno o più mongrel dietro lighty quindi
se non ho capito male hai rails che gira nello stesso processo del
web server ?
michele
I processi sono 2 lighttpd (720k) e dispatch.fcgi di 23Mb al minimo
finora raggiunto togliendo action mailer, action web service e limitando
il caricamento degli adapter all’ unico necessario. Sono riuscito a
limitare parzialmente l’ incremento del footprint con rails 1.2.x
togliendo il supporto ad unicode.
Qualche altra idea per diminuirlo ulteriormente?
finora raggiunto togliendo action mailer, action web service e limitando
il caricamento degli adapter all’ unico necessario. Sono riuscito a
limitare parzialmente l’ incremento del footprint con rails 1.2.x
togliendo il supporto ad unicode.
Qualche altra idea per diminuirlo ulteriormente?
non ho idea di quanto influir�, credo poco, ma
puoi
provare ad usare rail senza rubygems
Come si fa?
rake rails:freeze:gems
e non dovrebbe più caricarlo, visto che l’unico
riferimento a rubygems è in config/boot.rb, dove prova
a caricare rails da vendor e se fallisce lo carica da
rubygems.
Ma come ti dicevo, non credo che abbasserà molto il
consumo di memoria, o forse neanche lo
ridurrà.Gli altri consigli che ti hanno dato (usare mongrel
dietro lighttpd etc) probabilmente sono più utili.
Inoltre pensavo: se sei proprio stretto con la
memoria, hai controllato se è possibile ridurre la
roba che carichi dal db? Usare loading lazy invece
che eager, caricare solo dei campi invece di interi
oggetti[1] etc…
[1] ma questo è possibile farlo semplicemente?
Io avevo un moduletto da parte anni fa che rendeva
possible fare cose come
Book.find_all_titles
in modo da evitare
Book.find(:all).map {|x| x.title}
ormai probabilmente è obsoleto ed esiste qualcosa di
meglio, vero?
-----Messaggio originale-----
Da: [email protected] per conto di Michele F.
Inviato: gio 25/10/2007 20.21
A: ruby-it
Oggetto: Re: [ruby-it] Proplema di memoria