High Volume Traffic (25,000 simultaneous visitors)

  • Posted July 1, 2014

Hi we are expecting a spike in traffic next week after a promo. Does anyone know if upgrading the droplet to something like the highest of the high volume plans:

64GBMemory 20 CoreProcessor 640GBSSD Disk 9TBTransfer

Would be enough to sustain 25,000 visitors at once or 150,000 hits in a few minutes?

I know they have recommended a DEDICATED server, which DO is not. Does anyone have experience with this?


Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

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.

This is insane. If you need a machine that big, then there’s something seriously wrong with the application’s architecture. Vertically scaling (bigger machine) is limited. Horizontally scallng (lots of smaller machines, using a load-balancer such as HAProxy to delegate the work is industry-standard) it’s much more scalable and cost-effective as you can add / remove smaller workers to the cluster. The next bottleneck will likely be the database. For now, that will the thing you’ll need to scale-up vertically. To horizontally scale a database will require a lot more thought and expertise. A suggestion would be to use a message bus, like RabbitMQ, which can accept orders, but queue them up to be processed at a later time. Suggest you employ a contract architect for a little while to help you get this right.

I guess If u need good latency and throughput here should be good hosting. Nowadays I use this cdn which deliver the files to my end users in a super speed.

I can recommend to offload the static content to a content delivery network (CDN). This will significantly reduce the outbound traffic on your droplet. I know from my own experience with DO that you can run quickly into issues with your droplet if traffic spikes become too much (as you’re sharing the resources with others). Using a CDN has also the advantage that the content is cached around the world and closer to your end users (versus a droplet which is only one location). For my projects I’m using KeyCDN. They offer a great service. It’s the ideal CDN for my droplets.

Your performance depends on your application and how it’s configured.

I would recommend setting up your WordPress so it caches static pages for users who aren’t logged in. You can use WP Super Cache with Nginx for that. Review this tutorial from Shopp, then integrate their recommended configuration into my WP Super Cache tutorial. Skip the section on Jetpack. It is very important to configure WP Super Cache with the Shopp exceptions, or your store will break.

For load testing, you may want to try out Apache JMeter. I have also written a tutorial on that, here, but you will probably not be able to generate the kind of load that you mentioned with a single computer. Also, you would have to come up with a more realistic test case (than the one in the tutorial).

I have tested a 1 CPU/1GB droplet with a static WordPress site with JMeter. Without WP Super Cache, I could serve 2.5 simulated users/sec before CPU utilization was too high. With WP Super Cache, I could serve over 50 simulated users/sec. Remember, this won’t affect the load of users who use your Shopp pages (because they are dynamic).

The traffic and CPU load should scale linearly with the amount of visitors that you have, from what I see? You should be able to extrapolate on that. Keep in mind that shared resourced (e.g. hard drive) will provide the bottleneck at some point. Having 20 CPUs plaster the HDD with requests wont help. The biggest spikes I have been experiencing are at about 1k visitors in 10 minutes, on the smallest server I never went above 50% CPU load by these accesses alone, even with the number of database reads it creates. Perhaps you can stresstest your server before the event starts? I do not know if theres tools available for this, but that would be a possibility to figure out the best configuration of the server.

Are you sure that this is the legitimacy visitors, not DDoS?

In my opinion it seems a bit excessive, having 20 cores and such, what sort of application are you running?