5

We are testing extensive high loads on our Web Sites and Web Services. We use JMeter and other tools for this purpose.

Say for example: We have 5000 users/ second scenario.

These scenarios our local machines or any other Virtual machines fail to test due to heavy memory consumption.

Can people suggest their valuable inputs on what configuration of server should I buy for my testing purpose.

Currently we are planning a 16GB Ram Xeon Server.

But I need inputs from experts.

5
  • 2
    First you should go with some real world scenario because it is not possible that 5000 users comes in 1 second , there is always delay between 2 users , so you can try like 5/10 seconds delay between 2 users. Also start from 100 users and then you can increase 200,500,1000,2000 etc so you can get actual capacity of current server. Oct 15, 2015 at 13:28
  • In addition to above comment you will need to go for Distributed environment setup for load of 5000 users, considering your single test machine can handle 500 users so you will need 10 slave and 1 master (total 11 machines) for this testing.
    – Dhiman
    Oct 15, 2015 at 13:39
  • The scenario is same as I have described may be with slight difference. 5000 users in 1 second is the worst case we are considering. Our management has asked us a configuration for a server which we can use for heavy load tests. So instead of distributing the tests, can't we use single powerful machine with very high configuraition (ex. 32GB RAM, Xeon 4 core processor..etc).
    – Faiz
    Oct 16, 2015 at 5:06
  • Is there a recommendation for a Test Server or some suggested configuration for the purpose...?
    – Faiz
    Oct 16, 2015 at 5:09
  • 1
    @Learner, it is recommended to follow the tips given my DmitriT in his answer. You need to analyze the capabilities of your hardware in a systematic step-by-step process. For JMeter instances, I have found Amazon EC2 instances to be very powerful for load testing needs. So you can look into it as well. Dec 16, 2015 at 5:19

1 Answer 1

10

It is impossible to say something like "this hardware will able to simulate that much virtual users" as the maximum load you can produce from hardware strongly depends on the nature of your test.

For instance, if your test is simple hammering one or several pages with GET requests - you'll be able to simulate X users.

If your test assumes massive pre/post processing, uses parametrisation and assertions, - it will be less, i.e. X / 2.

So I would go for the following:

  1. Make sure that all the recommendations from JMeter Performance and Tuning Tips are applied
  2. Start with i.e. 100 concurrent users and mention how much CPU and RAM are used
  3. Increase concurrency to 200, measure CPU/RAM once more
  4. Continue increasing concurrency till resource consumption reaches ~80% of total CPU or RAM, whatever comes the first.

This will give you an idea what will be hardware requirements for 5000 concurrent users for that particular load test.

Also be aware that 5000 concurrent users doesn't necessarily mean 5000 requests per second as users need some time to "think" between requests, they don't hammer application non-stop, so think time + page load time needs also be considered.

For instance, if user thinks for 10 seconds between requests and page load time is 2 seconds, it means that each user can do 5 requests per minute.

5000 users will do 25000 requests per minute which is ~415 requests per second and this load can be produced by single modern mid-end hardware. If you decide to go that way - simulate throughput instead of concurrency - take a look at Constant Throughput Timer

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.