unicorn Ruby/Rack server user+dev discussion/patches/pulls/bugs/help
 help / color / mirror / code / Atom feed
* Number of worker processes on hyperthreaded processor
@ 2012-11-19 10:17 Andrew Stewart
  2012-11-19 11:23 ` Eric Wong
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Stewart @ 2012-11-19 10:17 UTC (permalink / raw)
  To: unicorn list

Good morning,

The tuning page says worker_processes should be at least the number of CPU cores on a dedicated server.  In the case of hyper-threading, should this be the number of cores or the number of threads?

For example the Intel Core i7-2600 Quadcore[1] has 4 cores and 8 threads.  Would I start my worker_processes at 4 or 8?

Finally, would the same apply to Nginx worker processes?

Many thanks,

Andrew Stewart

[1] http://ark.intel.com/products/52213/Intel-Core-i7-2600-Processor-8M-Cache-up-to-3_80-GHz

_______________________________________________
Unicorn mailing list - mongrel-unicorn@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-unicorn
Do not quote signatures (like this one) or top post when replying

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Number of worker processes on hyperthreaded processor
  2012-11-19 10:17 Number of worker processes on hyperthreaded processor Andrew Stewart
@ 2012-11-19 11:23 ` Eric Wong
  2012-11-19 11:54   ` Andrew Stewart
  2013-01-19 22:57   ` Jérémy Lecour
  0 siblings, 2 replies; 4+ messages in thread
From: Eric Wong @ 2012-11-19 11:23 UTC (permalink / raw)
  To: unicorn list

Andrew Stewart <boss@airbladesoftware.com> wrote:
> Good morning,
> 
> The tuning page says worker_processes should be at least the number of
> CPU cores on a dedicated server.  In the case of hyper-threading,
> should this be the number of cores or the number of threads?
> 
> For example the Intel Core i7-2600 Quadcore[1] has 4 cores and 8
> threads.  Would I start my worker_processes at 4 or 8?

I'd start with the number of threads, since (AFAIK) your CPU implements
HT well (unlike the P4 family).  Modern OSes multitask well, so more
worker processes will always work until it bumps into another limit
(e.g. memory usage, DB connections, disk contention, ...)

You may also want more workers to amortize GC/malloc/free costs anyways.

As always, testing for your particular app is required.

> Finally, would the same apply to Nginx worker processes?

I usually run fewer nginx workers since I don't configure much
CPU/memory-intensive logic in nginx.

However, if you're dealing with large uploads or large responses/static
files which cannot fit into memory, then I suggest having having enough
nginx workers to match (or exceed) your storage device count.

> [1] http://ark.intel.com/products/52213/Intel-Core-i7-2600-Processor-8M-Cache-up-to-3_80-GHz
_______________________________________________
Unicorn mailing list - mongrel-unicorn@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-unicorn
Do not quote signatures (like this one) or top post when replying

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Number of worker processes on hyperthreaded processor
  2012-11-19 11:23 ` Eric Wong
@ 2012-11-19 11:54   ` Andrew Stewart
  2013-01-19 22:57   ` Jérémy Lecour
  1 sibling, 0 replies; 4+ messages in thread
From: Andrew Stewart @ 2012-11-19 11:54 UTC (permalink / raw)
  To: unicorn list

Thank you – very helpful.

Yours,
Andrew Stewart
_______________________________________________
Unicorn mailing list - mongrel-unicorn@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-unicorn
Do not quote signatures (like this one) or top post when replying

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Number of worker processes on hyperthreaded processor
  2012-11-19 11:23 ` Eric Wong
  2012-11-19 11:54   ` Andrew Stewart
@ 2013-01-19 22:57   ` Jérémy Lecour
  1 sibling, 0 replies; 4+ messages in thread
From: Jérémy Lecour @ 2013-01-19 22:57 UTC (permalink / raw)
  To: unicorn list

2012/11/19 Eric Wong <normalperson@yhbt.net>:
> Andrew Stewart <boss@airbladesoftware.com> wrote:
>> Good morning,
>>
>> The tuning page says worker_processes should be at least the number of
>> CPU cores on a dedicated server.  In the case of hyper-threading,
>> should this be the number of cores or the number of threads?
>>
>> For example the Intel Core i7-2600 Quadcore[1] has 4 cores and 8
>> threads.  Would I start my worker_processes at 4 or 8?
>
> I'd start with the number of threads, since (AFAIK) your CPU implements
> HT well (unlike the P4 family).  Modern OSes multitask well, so more
> worker processes will always work until it bumps into another limit
> (e.g. memory usage, DB connections, disk contention, ...)

Hi (in plain text this time, sorry),

I have a follow up question about this.

What about having a few different unicorns (1 for each Ruby/Rails app)
on a singe server ; "at least the number of CPU cores" should count
the total number of children processes, or only per app ?

To be extremely clear ; if I have 2 quad-core CPUS with HT (eg. 16
cores), can I have 16 unicorn workers per app, or total ?

Thanks


PS : I've had my first unicorns in production for a few days, and I'm
very happy about this wonderful piece of software. Thanks for
making/maintaining it.


--
Jérémy Lecour :
http://jeremy.wordpress.com - http://twitter.com/jlecour
_______________________________________________
Unicorn mailing list - mongrel-unicorn@rubyforge.org
http://rubyforge.org/mailman/listinfo/mongrel-unicorn
Do not quote signatures (like this one) or top post when replying

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-01-19 23:03 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-19 10:17 Number of worker processes on hyperthreaded processor Andrew Stewart
2012-11-19 11:23 ` Eric Wong
2012-11-19 11:54   ` Andrew Stewart
2013-01-19 22:57   ` Jérémy Lecour

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