Scaling the system
CS290F Fall 2006 - UCSB Computer Science - Thorsten von Eicken
Contents |
Scaling
We have scaled the application servers up to 10 servers for Project 4.
The setup is shared database.
- One Web Server: We have one server running the Apache reverse proxy that forwards requests to the Rails Apps servers
- One or more App servers: One or more identical application servers running Ruby code. These servers have 4 instances of mongrel server running on four different ports on the app server (Ports 8000-8003). These mongrel instances forward the requests recieved from Apache reverse proxy to the Ruby engine. The Ruby instances make connections into the database server.
- One Database server: The shared database is hosted in this server. The ruby engines access the database in this server. Our books table has approximately 107,976 records right now. The orders and orderlines tables both have ~50,000 records (at the end of tests)
Results
Reply Rate
The graph shows the effect of adding multiple application servers to the reply rate. More replies are handled per second by the site when we add multiple application servers. The increase is linear with the number of application servers
Response Time
The graph show the effect of adding multiple application servers to the response time. When there are large number of app servers, the response time is fairly small. It increases linearly with the number of users hitting the website. When we have a small number of app servers, we see the response time is fairly large. It means slow response to the end user. The user might hit refresh button again and again, further increasing the load on the already loaded app server.
