4

In my specific case, I am working with websites, however the question is more general than that. What I’m looking for (I think) is something like a formula.

The situation is that I’ve already done load testing to determine the breaking point of the server. I know that any more than, say, 100 hits/second causes the server to overload and perform unacceptably. It is trivial to extrapolate this number to 360,000 hits/hour (100×60×60).

The problem arises when I get questions from marketing like, “for our next advertising campaign, how many visitors can we handle?” They work with numbers like, “2 million people will see our ad. Based on past experience we know about 10% of those people will click through, so 200,000 visitors will hit the website. Can we handle that?” If those 200,000 visitors were evenly distributed across an entire hour, the numbers above tell us that the server could handle the load fine. But what if the visitors were still spread across an hour, except the majority of visitors hit the site in the first 15 minutes? The site would be overloaded (100×60×15 < 200,000∕2).

The answer clearly depends on the distribution of hits. Unfortunately I don’t have that past data. So what are typical distributions for websites at both ends of the spectrum (sites with even distributions and sites with highly concentrated distributions)? If you don’t know, that’s fine as I can re-ask this part specifically in a separate question. More importantly:

Assuming I know what the distribution is, how do I apply that knowledge to determine the max # of visitors in a given interval based on max hits/second?

Until now I’ve assumed that one visitor means one hit. In reality each visitor will make one or more hits on the site. To take this into account, can I simply take the mean average of hits/visitor, then divide accordingly? Or do I have to take into account the distribution of page views per visitor (e.g. 90% of the visitors hit one page, 5% hit two pages, and 5% hit more than two pages)?

As a final consideration, this all involves a great deal of guesswork. This modelling will (in theory) give us a max number, but how much do you back off that number before passing it along? What are your thoughts on expressing the uncertainty of the result?

1 Answer 1

2

It is not about guesswork, but mainly about statistics. This is why it is extremely difficult to do a forecast with no data whatsoever for similar situations. The distribution of hits will follow some kind of curve - to know if your system can handle the load, you will need to look at the peak of the curve and compare that to your limits also taking into consideration that you would need some kind of "safety zone" in case the estimations were wrong. The "engineering" approach to determining the safety zone is to take the max number and over-engineer by a factor of at least 2. The over-engineering factor needs to be adjusted if a system failure will result in very high costs or, more precisely, if the cost of over-engineering is minor compared to the cost of a failure.

The rate of hits / visitor is a function of your site's or application's design, so theoretically it could be calculated. But a statistic approach is going to be much simpler here as well if the site has any considerable complexity.

You must log in to answer this question.

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