-2

I recently built my own server to help me learn linux, Ubuntu and related technologies and to serve some small website projects I have been producing.

How can I estimate the requests per second that this machine is capable of given the following scenario:

I have a small website that serves 6 webpages and enables the users to submit testimonials on one of the pages.

OS: Ubuntu Server 12.04

Servlet Container: Tomcat 7

Connection: Fiber Optic 76Mbp/s DOWN, 17Mbp/s UP

Website Technologies: Java MVC, MySQL for storing testimonials on the single webpage, AJAX for submitting a testimonial

Server

RAM: 8GB DDR3 1600MHz

CPU: Intel Core i3 3.4GHz Haswell

SSD: Corsair 60GB Force LS

So I just wanted to know if it is possible to estimate the capacity of this server if one of my websites became popular. How many users could it serve simultaneously before it goes down?

And what I could do to increase the amount of people it could serve simultaneously?

What tests can I perform on my server to help me estimate the capacity?

3

2 Answers 2

1

Use something like JMeter to load test it.

It is impossible to predict scaling with any accuracy because the bottlenecks you hit will depend on your individual implentation of both website and hardware.

1
  • +1. Generally anything performance related is something you do not estimate, you measure. At least ouside a fast "ok, that should be good for 100 concurrent people if programmed properly" - and even that has a BIG "if" in it.
    – TomTom
    Aug 7, 2014 at 11:33
-1

Best method is to take a average request time for your site page, divide second from that and multiply by number of cores. Let's say your site loads in 0.2s and you have 4 cores. So there is a good chance, that you will be able to serve 20 pages/s. But it's a lie called statistics and everything may go boom, if you users will like hitting a one page, that takes 5s to load :(

1
  • This is an absolutely standard question in queuing theory and/or capacity planning, and Mr Aliulis' answer is a perfectly fine first approximation. For an exact answer, try something like pdq. $ /gtest -s 0.2 -t 0.8 -q 4 1 100 10 # Closed solution from PDQ, where service time = 0.2, # think time = 0.8, dmax = 0, queues = 4 # Load, Response 1, 0.200000 11, 0.344304 21, 0.624339 31, 1.027152 41, 1.485103 51, 1.963362 61, 2.450325 71, 2.941689 81, 3.435564 91, 3.931000 If you plot this, it gives you the usual hocky-stick curve
    – davecb
    Feb 20, 2015 at 2:47

Not the answer you're looking for? Browse other questions tagged .