Completing the first goal (300 user test) is quite simple - select a load testing tool, build scripts and a test. Then tune / optimize and retry.
But I think your biggest question is how to approach the testing and planning of your full capacity, which, in your opinion, amounts to ~ 18 thousand simultaneously working users. First, make sure that the number (7% of the user base) is the peak of concurrency, not the average. You need to check the peak.
So, assuming that you are planning a load-balanced cluster with several servers to handle this load, the next step is to determine the maximum capacity of a single web application server, without load balancing. This gives you a baseline that you can use to evaluate cluster performance. This is a really important step, and many of our customers will skip this step, to their own detriment. This is important because there are many conditions under which the balancing system does not scale linearly with the number of servers in the cluster. Ideally, this should get pretty good systems too. You will be surprised how often we see systems that do not scale at all. We even saw several systems that actually have less capacity as a cluster than a single server can work on its own.
Once you have this baseline installed, you can make a preliminary estimate of the total number of servers that you will need, and you can create your own cluster. I recommend the following testing with 2 web application servers. That should almost double your possibilities. If this is not the case, you need to determine why before moving on to larger tests. Probable candidates are load balancing or a database (if one database server serves all web application / application servers). Sometimes a game plays something more fundamental to the architecture of the application.
If you are satisfied that scaling from 1 to 2 servers is optimal, you can go on scaling to a full cluster and check the maximum capacity. Be prepared for backtracking if you donβt see the scalability you expected - check with 3, 4, 5 servers, etc.
I hope this helps! Good luck:>
source share