Rainbows! Rack HTTP server user/dev discussion
 help / color / mirror / code / Atom feed
* impromptu Rainbows!/Zbatery user survey
@ 2010-06-16  0:56 Eric Wong
       [not found] ` <20100616005653.GA29720-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
  0 siblings, 1 reply; 4+ messages in thread
From: Eric Wong @ 2010-06-16  0:56 UTC (permalink / raw)
  To: rainbows-talk-GrnCvJ7WPxnNLxjTenLetw

Hi all,

Since Rainbows! can be configured so many different ways, I'm
wondering about how (or even if :) people use it in production.

* Which concurrency model(s) do you use?

* Which version(s) of Ruby do you use?

* How much peak traffic do you get?
  (Off-hours traffic is entirely uninteresting)

I'll understand if you're not allowed to share all (or any) of that
information.  If you can only share it privately, you can email me
directly, too, I won't tell anyone.

Behind the scenes, I've privately helped some folks deploy a few
production apps using ThreadSpawn (REE 2010.01), FiberSpawn
(1.9.1-p378), and EventMachine (REE 2010.01).  I can't say more than
that due to confidentiality issues, but I suspect WEBrick would've been
more than adequate for those applications :)

Even with the massive concurrency available from a single process, I
generally use 2-4 worker processes per core since it both spreads GC
pause time around and shortens GC time (there's less garbage in a
smaller process).

I'm writing a Rack application for my home network which will be
disk-intensive, so I'll probably deploy using ThreadSpawn with Zbatery
under 1.9 to take advantage of IO.copy_stream and splice[1].

[1] http://bogomips.org/ruby_io_splice

-- 
Eric Wong
_______________________________________________
Rainbows! mailing list - rainbows-talk-GrnCvJ7WPxnNLxjTenLetw@public.gmane.org
http://rubyforge.org/mailman/listinfo/rainbows-talk
Do not quote signatures (like this one) or top post when replying


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

* Re: impromptu Rainbows!/Zbatery user survey
       [not found] ` <20100616005653.GA29720-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
@ 2010-06-16 16:37   ` James Tucker
  2010-06-16 19:08   ` Eric Wong
  1 sibling, 0 replies; 4+ messages in thread
From: James Tucker @ 2010-06-16 16:37 UTC (permalink / raw)
  To: Rainbows! list


On 15 Jun 2010, at 21:56, Eric Wong wrote:

> under 1.9 to take advantage of IO.copy_stream and splice[1].
> 
> [1] http://bogomips.org/ruby_io_splice

That's sweet :)

_______________________________________________
Rainbows! mailing list - rainbows-talk-GrnCvJ7WPxnNLxjTenLetw@public.gmane.org
http://rubyforge.org/mailman/listinfo/rainbows-talk
Do not quote signatures (like this one) or top post when replying


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

* Re: impromptu Rainbows!/Zbatery user survey
       [not found] ` <20100616005653.GA29720-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
  2010-06-16 16:37   ` James Tucker
@ 2010-06-16 19:08   ` Eric Wong
       [not found]     ` <20100616190835.GA20621-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
  1 sibling, 1 reply; 4+ messages in thread
From: Eric Wong @ 2010-06-16 19:08 UTC (permalink / raw)
  To: rainbows-talk-GrnCvJ7WPxnNLxjTenLetw

Eric Wong <normalperson-rMlxZR9MS24@public.gmane.org> wrote:
> Hi all,
> 
> Since Rainbows! can be configured so many different ways, I'm
> wondering about how (or even if :) people use it in production.

One more question:

* What proxies, if any, run in front?  Either to distribute
  load between machines, handle failover for a dead machine, to serve
  static files, etc...

> Behind the scenes, I've privately helped some folks deploy a few
> production apps using ThreadSpawn (REE 2010.01), FiberSpawn
> (1.9.1-p378), and EventMachine (REE 2010.01).  I can't say more than
> that due to confidentiality issues, but I suspect WEBrick would've been
> more than adequate for those applications :)

_None_ of these are proxied behind nginx.  They only need a load
balancer to distribute load between multiple machines and to handle
failover if a box goes down.

They either use haproxy or a similar, but overpriced black-box[1].  They
either do pass-through (Layer 4, TCP-only) or only buffer (and possibly
rewrite) HTTP headers (Layer 7).  I forget which apps used which, but
Rainbows! works great in all of those configurations.

[1] not my decision to use it, of course :)

-- 
Eric Wong
_______________________________________________
Rainbows! mailing list - rainbows-talk-GrnCvJ7WPxnNLxjTenLetw@public.gmane.org
http://rubyforge.org/mailman/listinfo/rainbows-talk
Do not quote signatures (like this one) or top post when replying


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

* Re: impromptu Rainbows!/Zbatery user survey
       [not found]     ` <20100616190835.GA20621-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
@ 2010-06-17 19:46       ` James Tucker
  0 siblings, 0 replies; 4+ messages in thread
From: James Tucker @ 2010-06-17 19:46 UTC (permalink / raw)
  To: Rainbows! list


On 16 Jun 2010, at 16:08, Eric Wong wrote:

> Eric Wong <normalperson-rMlxZR9MS24@public.gmane.org> wrote:
>> Hi all,
>> 
>> Since Rainbows! can be configured so many different ways, I'm
>> wondering about how (or even if :) people use it in production.
> 
> One more question:
> 
> * What proxies, if any, run in front?  Either to distribute
>  load between machines, handle failover for a dead machine, to serve
>  static files, etc...

I do know of a bunch of folks using async Thin in production for relatively high concurrency levels (1-4k open connections) serving through nginx. I personally can't verify the numbers, as the boxes are behind doors to which I don't have keys. I don't know if this info is useful to you.

>> Behind the scenes, I've privately helped some folks deploy a few
>> production apps using ThreadSpawn (REE 2010.01), FiberSpawn
>> (1.9.1-p378), and EventMachine (REE 2010.01).  I can't say more than
>> that due to confidentiality issues, but I suspect WEBrick would've been
>> more than adequate for those applications :)
> 
> _None_ of these are proxied behind nginx.  They only need a load
> balancer to distribute load between multiple machines and to handle
> failover if a box goes down.
> 
> They either use haproxy or a similar, but overpriced black-box[1].  They
> either do pass-through (Layer 4, TCP-only) or only buffer (and possibly
> rewrite) HTTP headers (Layer 7).  I forget which apps used which, but
> Rainbows! works great in all of those configurations.
> 
> [1] not my decision to use it, of course :)
> 
> -- 
> Eric Wong
> _______________________________________________
> Rainbows! mailing list - rainbows-talk-GrnCvJ7WPxnNLxjTenLetw@public.gmane.org
> http://rubyforge.org/mailman/listinfo/rainbows-talk
> Do not quote signatures (like this one) or top post when replying

_______________________________________________
Rainbows! mailing list - rainbows-talk-GrnCvJ7WPxnNLxjTenLetw@public.gmane.org
http://rubyforge.org/mailman/listinfo/rainbows-talk
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:[~2010-06-17 19:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-16  0:56 impromptu Rainbows!/Zbatery user survey Eric Wong
     [not found] ` <20100616005653.GA29720-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
2010-06-16 16:37   ` James Tucker
2010-06-16 19:08   ` Eric Wong
     [not found]     ` <20100616190835.GA20621-yBiyF41qdooeIZ0/mPfg9Q@public.gmane.org>
2010-06-17 19:46       ` James Tucker

Code repositories for project(s) associated with this inbox:

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