Unicorn: Rack HTTP server for Unix and fast clients
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 :-)

