ncatnow
ncatnow

Reputation: 833

Ruby server very slow outside localhost (teambox)

I just installed TeamBox on my Ubuntu 9.10 server. I have it up and running on port 3000 using the provided server script.

It's running extremely slow, up to 30 seconds per HTTP request when connecting from another computer.

I used links to load up TeamBox from the shell and it took no time at all.

I then setup an SSH tunnel and again it was working very fast.

I run about 30 vhosts through apache on this server, as well as SAMBA etc and do not have any problems.

How can I troubleshoot this problem?

Upvotes: 5

Views: 5066

Answers (3)

Cicatrice
Cicatrice

Reputation: 211

a good way to publish RoR apps is to use Nginx as a HTTP(S) reverse-proxy, associated to thin ruby server (available as a gem).

Here is a good tutorial about Nginx with RubyOnRails, and here another about thin.

I use redmine too, with Nginx and thin under a OpenVZ container, and it's working very well !

Upvotes: 1

My redmine (ruby, webrick) is too very slow. Now I solved this problem: apt-get install mongrel
ruby /home/redmine/redmine/script/server mongrel -e production
done, and redmine work very good speed! by

Upvotes: 10

Travis
Travis

Reputation: 5061

Are you using Passenger? I had the same problem a few weeks ago and resolved the issue by adding this to my vhost file.

 # Speeds up spawn time tremendously -- if your app is compatible.
    # RMagick seems to be incompatible with smart spawning
    RailsSpawnMethod smart

    # Just in case you're leaking memory, restart a listener
    # after processing 5000 requests
    PassengerMaxRequests 5000

    # only check for restart.txt et al up to once every 5 seconds,
    # instead of once per processed request
    PassengerStatThrottleRate 5

    # Keep the spawners alive, which speeds up spawning a new Application
    # listener after a period of inactivity at the expense of memory.
    RailsAppSpawnerIdleTime 0

    # Additionally keep a copy of the Rails framework in memory. If you're
    # using multiple apps on the same version of Rails, this will speed up
    # the creation of new RailsAppSpawners. This isn't necessary if you're
    # only running one or 2 applications, or if your applications use
    # different versions of Rails.
    RailsFrameworkSpawnerIdleTime 0

    # Keep the application instances alive longer. Default is 300 (seconds)
    PassengerPoolIdleTime 1000

Upvotes: 2

Related Questions