I am working to optimize the speed of a Rails application we have in production.
It is built on an Apache,Passenger,Rails 2.35, Ubuntu on an m1.large EC2 instance (7.5GB RAM, 4 Compute Units) We will be switching to nginx in the near term, but have some dependancies on Apache right now. I'm running load tests against it with ab and httperf. We are seeing consistently 45 request/sec varying between 30 - 200 concurrent users for a simple API request to get a single record from a database table with 100k records indexed. It seems very slow to me. We are focusing on both application code optimization as well as server configuration optimization. I am currently focused on server configuration optimization. Here's what I've done so far: - Passenger adjusted PassengerMaxPoolSize to (90% Total Memory) / (Memory per passenger process, 230mb) - Apache adjusted MaxClients to 256 max. - I did both independently and together I saw no impact to the req/sec. Another note is that this seems to scale linearly by adding servers. So doesn't seem to be a database issue. 2 servers 90 req/sec, 3 servers was around 120 request/sec... etc Any tips? It just seems like we should be getting better performance by adding more processes? -- SD Ruby mailing list [email protected] http://groups.google.com/group/sdruby
