2012-11-25 4 views

risposta

6
  1. Si potrebbe iniziare più di un instante di sottile se si può avere richieste simultanee da elaborare. Per gestire richieste simultanee (connessioni simultanee) è necessario un cluster di "sottile".

  2. Sì, si può facilmente vedere questo:

proviamo un server singolo sottile

thin start -R fart.ru 
Thin web server (v1.5.0 codename Knife) 
Maximum connections set to 1024 
Listening on 0.0.0.0:3000, CTRL+C to stop 

controllo:

netstat -an | grep 300 
tcp4  0  0 *.3000     *.*     LISTEN  

ok, abbiamo un sottile ascoltando su una porta.

Ora proviamo un assegno --servers 3

thin start -R fart.ru --servers 3 
Starting server on 0.0.0.0:3000 ... 
Starting server on 0.0.0.0:3001 ... 
Starting server on 0.0.0.0:3002 ... 

:

netstat -an | grep 300 
tcp4  0  0 *.3002     *.*     LISTEN  
tcp4  0  0 *.3001     *.*     LISTEN  
tcp4  0  0 *.3000     *.*     LISTEN  

voilà avete 3 porta di ascolto.

ps -ef | grep thin 

segnala 3 processi in esecuzione, ognuno può gestire una richiesta concorrente.

In definitiva per elaborare le richieste contemporaneamente è necessario avviare un cluster di proxy sottile e inverso per l'host virtuale, quindi caricare il carico della richiesta sui vari thin che si sono avviati.

Questo blogpost può fare il punto: Scaling Rails with Apache 2, mod_proxy_balancer and Thin Clusters

+0

Per quante richieste al secondo avete bisogno di server più sottili? –

+0

citando http://www.amberbit.com/blog/2014/9/9/ruby-the-bad-parts/ Le prestazioni delle applicazioni multithread sono ancora limitate. L'interprete Ruby utilizza un meccanismo chiamato GIL (Global Interpreter Lock) che consente l'esecuzione di un solo thread alla volta, anche se eseguito su un sistema multiprocessore, ovvero se si dispone di un sistema quad-core, le risorse possono essere meglio utilizzate. In ogni caso, il test di carico e prestazioni è consigliato e utile per comprendere come questo può o meno essere applicabile all'ambiente dell'applicazione e al runtime. –

+0

................. Grazie –