best option to run RoR?

Discussion in 'Ruby/Rails' started by dlhhyct, Aug 29, 2006.

  1. dlhhyct

    dlhhyct New Member

    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,
    LiteSpeed RubyRunner (LSRR),
    Mongrel

    http://www.litespeedtech.com/support/wiki/doku.php?id=litespeed_wiki:ruby_rails_easy
  2. andreas

    andreas New Member

    LSRR uses LSAPI internally. Both options will be faster than Mongrel and use less memory.
  3. mistwang

    mistwang LiteSpeed Staff

    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.
  4. dlhhyct

    dlhhyct New Member

    more questions

    thanks for the info, and i have more questions.

    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?
  5. mistwang

    mistwang LiteSpeed Staff

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

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



    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.

    For how to use capistrano together with LSWS + LSAPI in a cluster, please read the discussion in
    http://www.litespeedtech.com/support/forum/showthread.php?t=522&page=2
    Last edited: Aug 30, 2006
  6. dlhhyct

    dlhhyct New Member

    superb

    thanks for all the info.

    just one last question, what load balance proxy hardware/software do you recommend?
  7. mistwang

    mistwang LiteSpeed Staff

    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. :)
  8. dlhhyct

    dlhhyct New Member

    command to graceful restart lsws?

    what's the equivalent of graceful restart in a command? /etc/init.d/lsws restart ? so i can write a rake task.

    from my simple benchmark, ruby lsapi give 3x performance of mongrel. good job well done.
  9. mistwang

    mistwang LiteSpeed Staff

    Yes, that should work. Or use "lsws/bin/lswsctrl restart".

    :cool:

Share This Page