Need advice on how to gracefully handle server load & spikes for WordPress site.

September 18, 2018 742 views
WordPress Load Balancing Scaling Ubuntu 18.04

I have two $5 droplets currently. One is hosting the WordPress webapp and the other is the corresponding MariaDB database. When starting out a free load test from loadimpact.com, the site is operating fine, but the site gets slower as the test continues to ramp towards its 25VUs.

By the time it gets to around 20, its pretty much inaccessible and I can see the top shows a ton of php-fpm's spun up. It takes about another couple minutes until they're done executing before the site returns to normal.

I know I can increase the droplet size or even start load balancing with replication, but what do I do about unanticipated site spikes that are not planned through the vertical scaling techniques?

This is a Ubuntu 18.04 setup running nginx/apache, there's Redis caching, Cloudflare caching, and the basic site caching on.

2 Answers
jarland MOD September 18, 2018
Accepted Answer

Hey friend!

I would try a different static page caching plugin for Wordpress. There are a few. If page caching works at it's best, PHP processing should be next to none. Possibly try disabling other plugins one by one too, while doing load tests, to see if there may be one that is responsible for all of the processing time that's causing them to stack.

Jarland

  • I realized after testing for quite a bit I didn't have my site caching turned on. After I did it was handling 500 concurrent users fine.

    However, I'm still wondering what people generally do prepare for spikes in traffic. Do people just create an infrastructure that matches the max amount of traffic spike? I feel like there must be a better way than to underutilize the servers the majority of the time.

I understand you,

You want to handle sudden spikes in the best economical way, which is autoscaling,,, i remember i did quick search and found out google app engine does that exactly and im using it now but the bills are around 170$ monthly! And i have 0 to 3 users max! So im back to digital ocean to find a way, so far i learned the only way is to upscale/downscale manually through the dashboard which is just not right. Hope some1 helps

Have another answer? Share your knowledge.