unicorn Ruby/Rack server user+dev discussion/patches/pulls/bugs/help
 help / color / mirror / code / Atom feed
From: Eric Wong <normalperson@yhbt.net>
To: "Bráulio Bhavamitra" <braulio@eita.org.br>
Cc: Unicorn <mongrel-unicorn@rubyforge.org>, unicorn-public@bogomips.org
Subject: Re: Does unicorn waits after_work to consider a worker ready?
Date: Thu, 1 May 2014 18:18:14 +0000	[thread overview]
Message-ID: <20140501181814.GA14118@dcvr.yhbt.net> (raw)
In-Reply-To: <CAJri6_v25+Q+mECa0jEnZ8hhBtOnz+KkM-cLRs_bg-JcR3_f_Q@mail.gmail.com>

Bráulio Bhavamitra <braulio@eita.org.br> wrote:
> On Wed, Apr 30, 2014 at 10:33 PM, Eric Wong <normalperson@yhbt.net> wrote:
> > You do not need to sleep before warmup.
> Warm up requests are expensive. This sleep based on worker.nr makes
> warm up happen on worker by worker, not all at once.

The worker might just be processing the expensive request in a
user-visible state, correct?

Modern Linux (and I expect most OSes people use nowadays) are great at
dividing CPU-intensive work fairly.  Of course, if there's disk
intensive load, that's a different case.

> > The master never pushes requests to a worker.  The key to unicorn is the
> > workers pull requests directly from the kernel queue.  The master is
> > never involved with distributing requests to the worker.
> Nice! So the kernel "sees" that worker is sleeping and should not pass
> a request to it, I guess.

Almost, but the kernel socket queueing doesn't really see.  It's more
like the kernel just puts food on the table continuously without caring
if workers are eating.  Sometimes the table overflows and food gets
thrown in the trash when the workers are all sleeping or full.

> > On a side note, your config is depressingly long and complex :<
> > Try to make your apps run well without needing unicorn-worker-killer,
> > at least...
> That's the ruby fate... Apps inevitably grow memory over time.

Only if you let bugs stay around.

If you find bugs in Ruby or the libs you use, please report and help get
them fixed.  Ruby 2.1 had some corner cases, true, but we need to help
fight against bloated apps.

...and bloated email signatures :P

  reply	other threads:[~2014-05-01 18:18 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-30 13:54 Does unicorn waits after_work to consider a worker ready? Bráulio Bhavamitra
2014-05-01  1:33 ` Eric Wong
2014-05-01 15:23   ` Bráulio Bhavamitra
2014-05-01 18:18     ` Eric Wong [this message]
2014-05-01 19:00       ` Bráulio Bhavamitra
2014-05-02 23:43         ` Eric Wong
2014-05-04 12:57           ` Bráulio Bhavamitra
2014-05-04 21:24             ` 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:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  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=20140501181814.GA14118@dcvr.yhbt.net \
    --to=normalperson@yhbt.net \
    --cc=braulio@eita.org.br \
    --cc=mongrel-unicorn@rubyforge.org \
    --cc=unicorn-public@bogomips.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* 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

	https://yhbt.net/unicorn.git/

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).