Ho appena scoperto Unicorn, un server HTTP per applicazioni Rack (quindi anche Ruby on Rails) pensato per Kernel Unix o Unix-like e connessioni veloci a bassa latenza.
Come suggerito dal sito client lenti dovrebbero essere serviti non da Unicorn ma da un proxy che si interfacci con Unicorn attraverso una connessione veloce ed effettui il buffering dei dati per poi gestire la connessione col client lento (ganzo! Ora devo scoprire come si fa...)

Installare Unicorn è semplicissimo, basta un:

gem install unicorn

dopodichè, se si tratta di un'applicazione Rails, basta andare nella RAILS_ROOT e lanciare:

unicorn_rails

Se invece si tratta di un'applicazione non Rails il comando è:

unicorn

In entrambi i casi Unicorn fa il binding della porta 8080 su tutte le interfacce (il comportamento è comunque configurabile).

L'impressione generale è una velocità molto maggiore sia di Webrick che di Passenger. Un confronto al volo su una pagina con un tabellone da un migliaio di righe dice:

Webrick => 6131ms
Unicorn => 5698ms

Quindi circa 8% in meno.

Prossimamente approfondirò l'argomento :-)

blog comments powered by Disqus