I am preparing to go live with an app, and was wondering if someone can give me some insight on my benchmarks. How do they compare, what system level tweaks can I make to improve them etc.
My setup is the following:
- m1.large amazon ec2 instance, running Ubuntu 11.04 Natty.
- Nginx as a reversed proxy for web requests. These requests are servered over unix sockets to a pool of unicorn workers that serve up a ruby (1.9.2) app (Sinatra as the framework)
When running apache bench as follows ab -n 10000 -c 10 http://localhost/ I get negligible memory consumption, and higher cpu spikes. I see about 75-80% cpu usage
top results:
Cpu(s): 43.1%us, 20.9%sy, 0.0%ni, 21.5%id, 1.0%wa, 0.0%hi, 2.4%si, 11.1%st
And my benchmark results are as follows:
Server Software: nginx/0.8.54
Server Hostname: loalhost
Server Port: 80
Document Path: /
Document Length: 3683 bytes
Concurrency Level: 10
Time taken for tests: 13.072 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Total transferred: 38570000 bytes
HTML transferred: 36830000 bytes
Requests per second: 765.00 [#/sec] (mean)
Time per request: 13.072 [ms] (mean)
Time per request: 1.307 [ms] (mean, across all concurrent requests)
Transfer rate: 2881.46 [Kbytes/sec] received