Question

In Joel's article for Inc. entitled How Hard Could It Be?: The Unproven Path, he wrote:

...it turns out that Jeff and his programmers were so good that they built a site that could serve 80,000 visitors a day (roughly 755,000 page views)

How would I go about figuring out the maximum load my server(s) can handle?

Was it helpful?

Solution

Jason, Have you looked at the Load Test built in to Visual Studio 2008 Team System? Check out this video to see a demo.

Edit: Here's another video that has better resolution.

OTHER TIPS

Benchmarking your software is often a lot harder than it seems. Sure, it's easy to produce some numbers that say something about the performance of your software, but unless it was calculated using a very accurate representation of the actual usage patterns of your end users, it might be completely different from the actual results you will get in the wild. Websites are notoriously hard to benchmark correctly. Sure, you can run a script that measures the time it takes to generate a page but it will be a very different number from what you will see under real world usage.

Inorder to create a solid benchmark of what your servers can handle, you first need to figure out what the usage patterns of your users is. If your site is already running, you can easily collect this data from your logs. Next, you need to create a simulation that will emulate exactly the same patterns as your real users exhibit... that is - view front page, login, view status page and so forth. Different pages will create a different load on the servers requiring that you actually fetch correct set of pages when simulating load on your servers. Finally, you need to figure out which resources are cached by your users, you can do this again by looking through your access log or using a tool such as firebug.

JMeter, ab, or httperf

You can create several "stress tests" and run them as the other posters are telling.

Apache has a tool called JMeter where you can create these tests and run them several times.

http://jmeter.apache.org/

Greetings.

Apache has a tool called ab that you can use to benchmark a server. It can simulate loads requests and concurrency situations for you.

Basically you need to mimic the behavior of a user and keep ramping up the number of users being mimiced until the server response is no longer acceptable.

There are a variety of tools that can do this but essentially you want to record a few sessions activity on your site and then play those sessions back (adding some randomisation to reflect real user behaviour) lots of times.

You will want to log the performance of each session and keep increasing the load until the the performance becomes unacceptable.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top