best option to run RoR?

Currently I'm running litespeed in front of mongrel processes, and it works great.

Today I just read about the new LiteSpeed RubyRunner (LSRR) and I'm getting confused. which of the 5 options yield the maximum performance? wait, minus fastCGI (too hard for me) and CGI. which of following 3 options yield max performance for a RoR site?

Ruby LSAPI is the best choice for RoR. It gives the best performance as well the easiest configuration, the wiki uses Ruby LSAPI.
LSRR is for running CGI in a persistent interpreter, ruby interpreter need to do extra work to shield one CGI script from interfering with the others, better using Ruby LSAPI directly when you can.

To reload a RoR app, currently i use capistrano to restart mongrel processes, very simple, and it won't affect other vhost. how is it done using LSAPI, disable/enable vhost, or restart whole webserver?

under which scenario would one use LSRR instead of LSAPI? I mean what LSRR attempt to accomplish that LSAPI can't do?

for my typical RoR app, I create a vhost to load balance a few mongrel processes, all in one server. If traffic grows, I think I can still use one LS vhost to load balance more mongrel processes on several servers, correct? how is scalability done using LSAPI cross several servers?

To reload a RoR app, currently i use capistrano to restart mongrel processes, very simple, and it won't affect other vhost. how is it done using LSAPI, disable/enable vhost, or restart whole webserver?

Click to expand...

For LSWS + Ruby LSAPI, just restart LSWS, restart is graceful, no downtime at all.

under which scenario would one use LSRR instead of LSAPI? I mean what LSRR attempt to accomplish that LSAPI can't do?

Click to expand...

LSRR is implemented on top of LSAPI, it is for running plain CGI scripts written in Ruby.

If traffic grows, I think I can still use one LS vhost to load balance more mongrel processes on several servers, correct? how is scalability done using LSAPI cross several servers?

Click to expand...

Yes, you can do that. In that case, I would recommend running LSWS + LSAPI on each every cluster node with a front-end load balancer. It should be easier to setup than running LSAPI on a node along, faster than using Mongrel, and pages cached in file system on a node can served by LSWS directly.

You can LSWS as stateless load balancer as what you did with Mongrel cluster. We will release a dedicate load balancer which is session-aware. You can also use any other load balance proxies like apache, pond, etc., as long as it fits what your need.