Many thanks for the suggestion, but the problem is still here...

My runtime configuration now is:

t...@tex-laptop:~xxx$ jruby -S glassfish
Parsing config file: /home/tex/xxx/config/glassfish.yml
Arguments:
    runtimes=>1
    runtimes_min=>1
    runtimes_max=>1
    contextroot=>/
    environment=>production
    app_dir=>/home/tex/xxx
    port=>3000
    pid=>
    log=>/home/tex/xxx/log/production.log
    log_console=>false
    log_level=>7
    daemon=>false
    jvm_options=>
    domain_dir=>/home/tex/xxx/tmp/.glassfish
Starting GlassFish server at: 127.0.0.1:3000 in production environment...
Writing log messages to: /home/tex/xxx/log/production.log.
Press Ctrl+C to stop.

The problem is always the same: 40 seconds for the 4th response...

I think I'm the only one on the heart that cannot run rails with JRuby 
with multiple concurrent requests, all the other out there seems that 
can run it without any problem (maybe I'm unlucky, sigh...)

> I believe for Jruby the min and max runtimes need to bet set to 1 for
> this to happen and work with config.threadsafe!
>
> AD
>
> On Thu, Aug 27, 2009 at 9:18 AM, Gianluca
> Tessarolo<tessarolo.gianl...@mediamaster.it> wrote:
>   
>> Sorry, I still can't understand how to run rails in thread safe mode under
>> JRuby (one running instance supporting multiple concurrent requests).
>>
>> If I try to enable config.threadsafe! in config/environments/production.rb
>> under Glassfish Gem my Rails application still run single threaded.
>>
>> Here a very simple example (environment is: glassfish gem v. 0.9.5 / jruby
>> 1.3.1 / rails 2.3.3 / ubuntu 9.04 / notebook centrino dual core / 2gb Ram):
>>
>> rails concurrent
>> cd concurrent
>> script/generate controller test test
>>
>> edit app/controllers/test_controller.rb, modify source as follow:
>>
>> class TestController < ApplicationController
>>   def test
>>     @value = Time.now
>>     sleep 10
>>   end
>> end
>>
>> edit app/views/test/test.html.erb, modify source as follow:
>>
>> <%= @value %>
>>
>> edit config/environments/production.rb, uncomment last line as follow:
>>
>> config.threadsafe!
>>
>> edit config/environemt.rbm uncomment frameworks line as follow (no database,
>> resource, mail support for this very simple
>> test...):
>>
>> config.frameworks -= [ :active_record, :active_resource, :action_mailer ]
>>
>> Now run:
>>
>> jruby -S gfrake config
>>
>> edit config/glassfish.yml, modify config as follow (notice 4 runtime
>> instances !):
>>
>> environment: production
>> jruby-runtime-pool:
>> initial: 4
>> min: 4
>> max: 4
>>
>> And finally start glassfish gem:
>>
>> jruby -S glassfish
>>
>> Now, if you try to call 4 times (concurrently) the following url...
>>
>> http://localhost:3000/test/test
>>
>> ...you must wait 40 seconds for the 4th response...
>>
>> This is a wrong behaviour because trying the same test under phusion
>> passenger I wait only 10 seconds for the 4th response
>> (in fact passenger start up 4 rails processes, 1 for each concurrent
>> request)...
>>
>> I want to know if is it possible to run Rails with only one running instance
>> supporting multiple concurrent requests...
>>
>> Many thanks in advance...
>>
>> At 10:45 PM -0700 8/15/09, AlwaysCharging wrote:
>>
>>
>> Why would anyone use ruby over Jruby?  I'm admittedly a noob about all
>> this stuff, but from what I've read jruby seems superior to ruby and
>> quite a bit faster.  What would be the disadvantages of JRuby?  I man
>> it's possible to use it with rails now, and JRuby is what's used by
>> default in netbeans (which is the ide I think I've settled on).  So
>> why not JRuby?  Would the tutorials be all that different?
>>
>>
>> I use both MRI and JRuby -- often at the same time in the same
>> project when developing.
>>
>> One advantage I didn't see in the thread so for MRI is that the
>> interpreter starts fast. This is great when starting lots of small
>> tasks from the console.
>>
>> Here's a couple of pluses for JRuby that I haven't seen mentioned:
>>
>> 1) It is very easy to make multiple, complete, and isolated Ruby
>> installation using JRuby. I know there are some tools to make this
>> easier in MRI -- I even wrote a simple one -- but this is trivial in
>> JRuby.
>>
>> 2) For some rendering operations in development mode JRuby can be 20x
>> faster.
>>
>> This is a strange result -- in general I've found JRuby to be about
>> twice as fast as MRI in production ... but I'd never seen this result
>> before ...
>>
>> I've got a complex Rails application for authoring secondary science
>> investigations and one of the render tasks generates a composite xml
>> document that represents all of the objects in an investigation.
>> Right now the largest investigation is about 350k rendered into xml
>> and represents over 1100 objects. Roughly that corresponds to about
>> 1100 partial calls.
>>
>> I have not done ANY work on improving performance in the rendering
>> speed yet (lots of partials calling partials) and noticed that the
>> render speed when running in MRI in development mode has gotten very
>> long as authors have finally started making real investigations.
>>
>> I put together a benchmark measuring the time to render 11
>> investigations in xml.
>>
>> The JRuby results were quite impressive:
>>
>>            Development   Production
>> =======================================
>> MRI:        849s           30s
>> JRuby:       35s           18s
>>
>> The rendering is done with HAML.
>>
>> I have no idea why rendering in dev mode in MRI is SO slow.
>>
>> There's obviously a problem somewhere in the interaction with Rails,
>> my code, MRI and development mode. But the fact that JRuby running in
>> development mode renders all 11 Investigations into xml only 15%
>> slower than MRI in production is great.  It also means that when I am
>> testing or developing these features in the app I run my dev server
>> in JRuby.
>>
>> While I plan to work on performance later in most cases in production
>> the Investigations will be frozen and the xml doc will be served from
>> a page cache -- so performance improvements in rendering are not on
>> the critical path for the production app.
>>
>> This is running on Mac OS X 10.5.8 and Rails 2.3.3
>>
>> MRI and JRuby versions:
>>
>> $ jruby -v
>> jruby 1.4.0dev (ruby 1.8.7p174) (2009-08-09 6586) (Java HotSpot(TM)
>> Client VM 1.5.0_19) [i386-java]
>>
>> $ ruby -v
>> ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]
>>
>> more details:
>>
>> http://groups.google.com/group/cc-developers/browse_thread/thread/af4ca01be8eb41ab?hl=en
>>
>>
>>
>>
>>
>>     
>
> >
>
>   


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to