Performing Faster

Hi All,

We are building a maps based site in which we serve out map tiles
created by us. The entire application is working well enough and we
have followed through on most of the best Rails practices to speed up
things. We have also now gone through the list of YSlow and typical
HTTP practices to further reduce the time spent in the application.

I guess it’s now time to go beyond the design and look at what can be
done with the servers. We are using a traditional Apache + Mongrel
Cluster for deployment at this time.

I have been reading and Thin looks attractive, as do Nginx and
Lighttpd. I am wondering what we should look at next.

Serving map data requires us to server a number of tiles (256 x 256
pixels each) to create the map the user sees. Naturally, we will add
“expires” headers, etc. so that the client caches it (if it can). We
are just wondering if there is a recommended way to reduce the time it
takes to serve files.

The tiles are served from a complex directory structure on four assets
domains. Is there a “very fast static file server” that you would
recommend us to use? Any experience or guidance would be great…

Thanks,
Mohit.
1/9/2010 | 3:59 PM.

I can’t help myself from asking, why did you choose rails for this in
the
first place?

Yeah, this isn’t really a rails question.

However, you should look at using something like Varnish
http://varnish-cache.org/
to serve the static files.

On 1/9/2010 4:29 PM, Joe D. wrote:

I can’t help myself from asking, why did you choose rails for this in
the first place?
There’s nothing wrong with Rails for the task of building a maps based
application… instead of Google Maps or Bing Maps, we use our own based
on data that we have. We use OpenLayers for the client side
(Javascript) and store data in a database…

Specifically, which aspect of this would you think does not map to
Rails?

Cheers,
Mohit.
2/9/2010 | 5:21 PM.

I would say don’t over optimize prematurely. Seems you have done the
basics,
if the site does not seem slow why spend time or trying to solve a
problem
that does not exist yet.

As a side note you should keep an eye on http://railslab.newrelic.com/.
They
have made some good resources to scale rails apps.

Also nginx infront of apache is quite useful for serving up static
files.
nginx is lot better at serving static files. nginx will also eventually
help
you out in load balancing across web servers and help you avoid more
complex
solutions for sometime.

thanks,
Adi

On 1/9/2010 5:18 PM, Dermot Brennan wrote:

Yeah, this isn’t really a rails question.

However, you should look at using something like Varnish http://varnish-cache.org/
to serve the static files.

Thanks - Varnish had not yet crossed my mind :slight_smile:

Cheers,
Mohit.
2/9/2010 | 5:23 PM.

On 1/9/2010 7:00 PM, Adi wrote:

eventually help you out in load balancing across web servers and help
you avoid more complex solutions for sometime.

Thanks, Adi. We are just in that phase where we have a bit of time to
look at the final set of optimizations before we do the final sizing of
the hardware for the projected load. Thanks for the links - we will
start to look at these now…

Cheers,
Mohit.
2/9/2010 | 5:25 PM.