Question

How to estimate traffic a server can handle?

Posted March 28, 2021 295 views
Scaling

How much traffic a server can handle depends on many factors but how can you give an estimate? Is there sort of equation you use to calculate such values or what exactly?

Any help/previous experiences is highly appreciated.

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

×
Submit an Answer
1 answer

Hi @omarelsafwany,

Unfortunately, there is no such way to pinpoint the exact traffic a server can handle. This as you mentioned is dependant on many factors.

I’ll try to mention each factor that plays a big role in a server/droplet handling traffic. Firstly, let’s take a look at the server-side.

Server side-wise, the factor can be determined by two things, how well is the server optimized and what services it’s using. Usually, you have a type of SQL(MySQL)and a WebService (Apache/Nginx) at the very least. In regards to MySQL and how much the server can handle it depends on the databases, if they are not optimized a lot less than usual. The same goes regarding Apache/Nginx.

Having said the above, there are ways to optimize them and increase their productivity like using server-side caching services like OPcache. Additionally, regarding web services, you can use php-fpm for instance which again increases its capacity.

The next big thing is your website and how heavy it is. Again, like the server-side stuff, you can always optimize it to increase its productivity on the server. These optimizations can be in caching your website, optimizing image sizes, minimizing javascript, CSS, and other similar file sizes, and so on.

All in all, there is no formula as far as I’m aware that will help you with estimating this unless you know all the variables. My suggestion is always the same. Start with the smallest droplet and when you see the need, upgrade it to a bigger one.

Regards,
KFSys

  • @omarelsafwany, sorry for my second reply but here is more information about upgrading a droplet in case you need it :

    There are now two options, permanent and flexible.

    Permanent resizing allows you to resize your disk space as well as CPU and RAM. As the name implies, this is a one-way operation. After increasing the disk size, you will not be able to decrease it.

    Flexible resizing only upgrades your CPU and RAM. This option is reversible and gives you the flexibility to scale up and down as needed.

    For more info, check out this article:

    • @KFSys Thank you for you input. The thing is I am thinking of separating the web app into different servers as follows:

      1. WebServer for the just application
      2. DB server for the database
      3. LoadBalancer infront of the webservers
      4. Add webservers whenever needed

      The thing is if I do such setup, should I consider dedicated servers instead of the shared. If so, then maybe start with General Purpose one and then see what happens next.

      I am thinking out loud so does that sound like a plan to start with?

      • Hi @omarelsafwany,

        Your plan is a good one.

        Depending on the project, and by that I mean what you expect to be the traffic you can opt for either shared or dedicated. If you think people will use the application a lot and there is a plan for even higher traffic in the future maybe opting for a dedicated server would be the better idea. Having said that, if you are not sure about the potential increase in traffic, opting for a shared droplet/server would be a better option.

        So, yes, thinking out loud is really good! I do believe you should start with the most cost inexpensive droplets, you have the ability to scale real fast and real good if needed so there is no point in going big from the beginning.