How can I plan the capacity of my web application and decide the deployment architecture?

I have an ASP.net web application deployed on a small copy of AWS (AMD Dual Core, 2.60 GHz, 1.7 GB RAM). I would like to perform load testing on this server for 300 simultaneous users and for the future, I want to develop a preliminary configuration and deployment architecture for 250,000 registered users for my application.

I am a very new person in this area and before that I have not performed any load tests.

The use case and scenario of my application will look like this:

Scenario - 250,000 registered users in the database

Concurrency - 5% - 7% - approximately 17,500

Each user has a bookshelf and assuming that each user has subscribed to 10 books. Each book is about 25 MB in size with 400 pages

Use cases

  • User Login

    • Database Authentication and Authorization
  • View bookshelf with book images

    • Book Shelf (.swf) - 400KB (Downloadable per user)

    • 10 book images (20 KB per image) will be downloaded (approximately)

    • catalog.xml - 30 KB / user for dedicated to user

    • Note Approximately 650 KB of data is downloaded to the client machine.

  • Book overview: when you click on the book image, the following files and their sizes will be downloaded to the client machine

    • Once
    • Reader.swf - 950 KB (first download)
    • XML data approximately 100KB / per book (per click)
      • Book.xml
      • Annotation.xml
      • catalog.xml
      • Usersettings.xml 40KB * 4 = 160 KB per user (.swf)
    • Note. Approximately 1200 KB of data is downloaded to the client machine.

Can someone please suggest how can I continue this?

Thanks very much in advance, Amar

+4
source share
2 answers

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:>

+3
source

This link: http://support.microsoft.com/kb/231282 , contains links to some tools for stress testing your site.

This is obviously a complex area, so you can have 2.5 million registered users (is this really a lot?), But how many at the same time, and which areas of the website will they use. All of these things (and much more) will affect the capacity planning of your system.

0
source

Source: https://habr.com/ru/post/1336294/


All Articles