unicorn Ruby/Rack server user+dev discussion/patches/pulls/bugs/help
 help / color / mirror / code / Atom feed
From: Hongli Lai <hongli@phusion.nl>
To: "Bráulio Bhavamitra" <braulio@eita.org.br>
Cc: unicorn-public <unicorn-public@bogomips.org>,
	Hitendra Hugo Melo <hitendra@riseup.net>
Subject: Re: No, passenger 5.0 is not faster than unicorn :)
Date: Wed, 3 Dec 2014 12:00:47 +0100	[thread overview]
Message-ID: <CAM3ce8HK_bDu1WbnZxGvZJPPw4eLvbBKWrhRoQNf96FDKBkaYQ@mail.gmail.com> (raw)
In-Reply-To: <CAJri6_uarn+vrr_TN07SzyFzR07hDN-z79rBcDe=8VPxOL4mVQ@mail.gmail.com>

Unicorn *is* in general very good and very efficient, no doubt about that.
Eric Wong has made great design choices and is an excellent programmer.

Having said that, in certain specific cases there's still room for
improvement. That's why we focused so much on microoptimizations and
specific optimizations like turbocaching. Have you followed Phusion
Passenger's Server Optimization Guide?

Also, you have to ensure that your Rails app sets the correct caching
headers. By default, Rails sets "Cache-Control: private, no-store" so that
the turbocache cannot kick in. You should see very different results if you
add "headers['Cache-Control'] = 'public'" to your Rails app. If you need
any help with this, please feel free to contact me off-list. I'd be happy
to help. We have also a benchmarking kit so that you can double check the
results; email me if you're interested in this.

As Sam said, most of the time will be spent in the Rails app. But
turbocaching is one notable exception: it's the one feature that can speed
things up even if your app is slow - provided that you set HTTP caching
headers correctly.

Unicorn is excellent at what it does: it's a minimal server with a specific
I/O model that is supposed to be used behind a buffering reverse proxy.
There is nothing wrong with that, and for the workloads that it's designed
for, it's great. Phusion Passenger has merely chosen a non-generalist
approach that aims to squeeze additional performance from specific cases.
Of course, nothing's a silver bullet. Like any tool, it only works if you
use it correctly.

On Wed, Dec 3, 2014 at 10:50 AM, Bráulio Bhavamitra <braulio@eita.org.br>

> Hello all,
> I've just tested a one instance each (one worker with unicorn and
> --max-pool-size 1 passenger 5) on the rails app I work.
> And the results are just as I expected, no miracle at all: Unicorn is
> still the fatest!
> (the difference is only a few milliseconds less per request)
> The blocking design of unicorn is proving itself very efficient.
> cheers!
> bráulio

Phusion | Web Application deployment, scaling, and monitoring solutions

Web: http://www.phusion.nl/
E-mail: info@phusion.nl
Chamber of commerce no: 08173483 (The Netherlands)

  parent reply	other threads:[~2014-12-03 11:01 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-03  9:50 No, passenger 5.0 is not faster than unicorn :) Bráulio Bhavamitra
2014-12-03  9:56 ` Sam Saffron
2014-12-03  9:57   ` Sam Saffron
2014-12-03 11:00 ` Hongli Lai [this message]
2014-12-03 11:05   ` Sam Saffron
2014-12-03 12:42     ` Xavier Noria
2014-12-03 14:10   ` Bráulio Bhavamitra

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

  List information: https://yhbt.net/unicorn/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAM3ce8HK_bDu1WbnZxGvZJPPw4eLvbBKWrhRoQNf96FDKBkaYQ@mail.gmail.com \
    --to=hongli@phusion.nl \
    --cc=braulio@eita.org.br \
    --cc=hitendra@riseup.net \
    --cc=unicorn-public@bogomips.org \


* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).