# Consigli e indicazioni per configurazione applicazione Rails in produzione

**URL:** <https://www.ruby-forum.com/t/consigli-e-indicazioni-per-configurazione-applicazione-rails-in-produzione/227503>\
**Category:** IT\
**Created:** [March 18, 2013, 2:04pm UTC](https://www.ruby-forum.com/t/consigli-e-indicazioni-per-configurazione-applicazione-rails-in-produzione/227503 "2013-03-18T14:04:28Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![akiross](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e36b37/32.png) [@akiross](https://www.ruby-forum.com/u/akiross)\
**Post date:** [March 18, 2013, 2:04pm UTC](https://www.ruby-forum.com/t/consigli-e-indicazioni-per-configurazione-applicazione-rails-in-produzione/227503/1 "2013-03-18T14:04:28Z")

</div>

Ciao a tutti,  
volevo sapere se qualcuno di voi ha esperienza nella configurazione di  
un’applicazione RubyOnRails su un server di produzione.  
Attualmente la mia applicazione configurata con Apache + mod\_passenger  
e  
un massimo di 10 istanze di Rails + 1 DB Postgresql.  
Con l’attuale configurazione riesco a gestire tranquillamente un carico  
di  
qualche migliaio di utenti al giorno e fino a 30~50 utenti  
contemporaneamente.  
In previsione di un aumento esponenziale nel numero di utenti che  
potrebbe  
salire di circa due ordini di grandezza come vi muovereste?  
Avreste qualche consiglio, link, indicazione da darmi?  
Cosa fareste al posto mio, insomma? 🙂  
Avrei bisogno di effettuare statistiche sull’utilizo di CPU, memoria e  
disco, c’ qualche modulo per Apache che mi possa aiutare?

Grazie a tutti!  
Alessandro R.

---

<div class="post-metadata">

**Author:** ![akiross](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e36b37/32.png) [@akiross](https://www.ruby-forum.com/u/akiross)\
**Post date:** [March 18, 2013, 2:55pm UTC](https://www.ruby-forum.com/t/consigli-e-indicazioni-per-configurazione-applicazione-rails-in-produzione/227503/2 "2013-03-18T14:55:55Z")

</div>

Ciao Alessandro,

Ogni processo Rails gestisce una sola richiesta HTTP alla volta, a meno  
che  
tu non l’abbia configurato diversamente.  
La prima domanda che ti devi porre quanta RAM ha il tuo server di  
produzione, poich potresti dover avviare nuovi processi Rails.  
Se il tuo server di produzione non ha abbastanza RAM, devi aggiungere un  
nuovo server, e condividere il database.

Il mio consiglio per di modificare l’applicazione in modo che sfrutti  
il  
caching, sia a livello HTTP, che di partials, che di oggetti.

Io svolgo i miei benchmark con AB.

Ciao,

Matteo

Il giorno 18 marzo 2013 13:04, Alessandro R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha  
scritto:

---

<div class="post-metadata">

**Author:** ![akiross](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e36b37/32.png) [@akiross](https://www.ruby-forum.com/u/akiross)\
**Post date:** [March 18, 2013, 11:27pm UTC](https://www.ruby-forum.com/t/consigli-e-indicazioni-per-configurazione-applicazione-rails-in-produzione/227503/3 "2013-03-18T23:27:52Z")

</div>

Ciao,

io inizierei col monitorare production con qualcosa tipo new relic, e  
risolvere bottleneck attuali (se ne esitono).

New Relic due o tre anni fa’ aveva sponsorizzato dei video su scaling  
rails. Ci sono spiegati parecchi concetti di base che potrebbero  
aiutarti (load testing, HTTP caching, scaling the DB):  
https://www.youtube.com/embed/videoseries?list=PLuVcDOUVjW2ePvFapFSHBZ71ya2fLHZS5&wmode=transparent&rel=0&autohide=1&showinfo=1&enablejsapi=1

Una buona lettura e’ “The art of capacity planning”  
([The Art of Capacity Planning: Scaling Web Resources: Allspaw, John: 9780596518578: Amazon.com: Books](http://www.amazon.com/Art-Capacity-Planning-Scaling-Resources/dp/0596518579/ref=sr_1_4?s=books&ie=UTF8&qid=1363645076&sr=1-4&keywords=scaling+web+applications))  
da qualche nozione su come fare load testing e spiega come avevano  
gestito aumento di traffico a Flickr.

La strategia da usare dipende da cosa fa’ la tua applicazione.

Good luck!

Enrico

2013/3/19 Matteo C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> caching, sia a livello HTTP, che di partials, che di oggetti.  
> scritto:
> 
> > salire di circa due ordini di grandezza come vi muovereste?  
> > [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)
> 
> * * *
> 
> Ml mailing list  
> [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)

–  
Enrico T.  
Software development and web design  
currently working @ [http://abc.com.au](http://abc.com.au)  
Sydney, NSW, Australia  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
mobile (AU) +00610416748450

> **[Enrico Teotti | Technical & Product Consultant](https://teotti.com)**
>
> Technical coach and product management consultant with 20+ years bridging software development and product management across the US, Europe, and Australia. I help teams through strategy, facilitation, and hands-on guidance.

---

<div class="post-metadata">

**Author:** ![akiross](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e36b37/32.png) [@akiross](https://www.ruby-forum.com/u/akiross)\
**Post date:** [March 19, 2013, 10:26am UTC](https://www.ruby-forum.com/t/consigli-e-indicazioni-per-configurazione-applicazione-rails-in-produzione/227503/4 "2013-03-19T10:26:19Z")

</div>

On 18/03/2013 14:04, Alessandro R. wrote:

> Ciao a tutti,  
> volevo sapere se qualcuno di voi ha esperienza nella configurazione di  
> un’applicazione RubyOnRails su un server di produzione.

L’ottimizzazione di RoR in produzione un argomento da sistemisti e non  
programmatori improvvisati tali (come spesso accade)… 🙂

Intanto: Passenger 3.x o Passenger 4.x?

A questo link

> **[Phusion Passenger users guide, Apache version](https://www.phusionpassenger.com/documentation/Users%20guide%20Apache.html)**

trovi la spiegazione dettagliata di alcune opzioni di ottimizzazione.  
Io, pi che ab, preferisco l’uso httperf in combinazione con htop e  
altri strumenti di base del sistema operativo per toccare e ritoccare  
queste opzioni, con alcune formule di base parametrizzate sulle risorse  
di sistema. Valuta anche [blitz.io](http://blitz.io) per richieste geograficamente  
sparse…

Se intendi scalare verso l’alto considera di deployare su pi host e un  
load balancer davanti (come haproxy).

Integra soluzioni di caching di sistema, come memcached…

Che dire, per il monitoraggio delle risorse, New Relic se il budget te  
lo permette, altrimenti in proprio Ganglia o collectd, per status  
Nagios.

Libro abbastanza recente:  
[http://pragprog.com/book/cbdepra/deploying-rails](http://pragprog.com/book/cbdepra/deploying-rails)

Ciao  
Fabrizio.

---

<div class="post-metadata">

**Author:** ![akiross](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e36b37/32.png) [@akiross](https://www.ruby-forum.com/u/akiross)\
**Post date:** [March 20, 2013, 9:21am UTC](https://www.ruby-forum.com/t/consigli-e-indicazioni-per-configurazione-applicazione-rails-in-produzione/227503/5 "2013-03-20T09:21:13Z")

</div>

Ciao,  
qui trovi alcune gemme per misurare le perfomance:

> **[Category: App Instrumentation - The Ruby Toolbox](https://www.ruby-toolbox.com/categories/rails_instrumentation)**
>
> Explore and compare open source Ruby libraries

> **[Category: Server Monitoring - The Ruby Toolbox](https://www.ruby-toolbox.com/categories/server_monitoring)**
>
> Explore and compare open source Ruby libraries

bye

Riccardo

---

<div class="post-metadata">

**Author:** ![akiross](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/e36b37/32.png) [@akiross](https://www.ruby-forum.com/u/akiross)\
**Post date:** [March 20, 2013, 1:58pm UTC](https://www.ruby-forum.com/t/consigli-e-indicazioni-per-configurazione-applicazione-rails-in-produzione/227503/6 "2013-03-20T13:58:48Z")

</div>

Grazie a tutti degli ottimi consigli li sto rpendendo in considerazione  
uno  
a uno: soprttutto quello che non posso fare il sistemista improvvisato  
🙂  
che proprio vero!

Alessandro R.
