Bráulio Bhavamitra <[email protected]> wrote:
> On Wed, Apr 30, 2014 at 10:33 PM, Eric Wong <[email protected]> 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
__
http://bogomips.org/unicorn-public/ - [email protected]
please quote as little as necessary when replying

Reply via email to