Shop with 1 mil page views / month

November 25, 2018 2.2k views
Load Balancing

Hi,

I’d like to move a Load Balanced site to Digital Ocean because I’d like to improve response time (hoping to get more crunches per second here).
The site is WooCommerce + WPML, with 2000 products, and it’s slow. The W3TC helps, but one of the recent marketing campaigns was to invite users to register for a discount, so now we have a bunch of logged in users with uncacheable user sessions and things like Black Friday don’t help either.

We have requested a site performance checkup from WPML, but that could take weeks.

What do you think about this setup for a 1.000.000 pageviews / 90.000 sessions per month:
2x nginx workers with 2vCPUs (cpu optimized droplets)
1x mysql / memcached data server with a standard 4vCPU droplet

Is it an overload for the 2vCPU cpu optmized droplet? Should I consider a standard droplet with more cores?
I must consider the number of active users (50 - 100), and hopefully reducing response time / TTFB with a better CPU here at DO.
The current site has a Xeon E5-2630 v4, and at 2.2GHz seems slower to respond than my home Xeon E3-1220 v3 @3.10 GHz. However, the current site has 2x nginx workers with 8 cores each (but by looking at DataDog’s CPU graphs, there seems to be quite a bit of overselling on these machines, and even with that, CPU Load never went over 3 on wrk1 and 4 on wrk2 on these VPS-s - during Black weekend).

The monthly allowance is around 120$, so please suggest another setup if you think that cpu_optimized(40$+40$) + standard(40$) isn’t the best fit here.

1 comment
  • Ram and CPU can be upgraded and downgraded as the need arises. The only thing that cannot be downgraded is disk space.

1 Answer

Hey friend,

Great topic! I want to say something that I said in another thread recently, because I believe that I have experience that applies to necessary expectations. I like to start here and work backwards.

I have never witnessed a WooCommerce site that had been running for a while, grew over time, and performed well. I don’t think it’s the fault of anyone, I think Wordpress is a bad platform for e-commerce at scale, and I think that you can outgrow it to the point that your efforts to sustain it become far too high as opposed to using a platform that was made from the ground up to support e-commerce. I used to do a lot of managed Wordpress work, in which I would find myself migrating websites to VPS and dedi from shared hosting, for the purpose of improving performance. Sometimes the application itself made the job impossible.

Now, let’s talk less about my negative experiences and more about what I might try to improve it. You can’t give up before trying. In a lot of the cases I dealt with, the primary problem was that you just can’t cache all content all the time on an e-commerce site. You have to hit the database, it’s just not a blog. So my thoughts are these:

  1. Try 4x web and 2x MySQL servers in master-master replication. I’m thinking: 4x 2GB standard droplets for web, 2x 4GB standard droplets for MySQL.
  2. Clean house with plugins. If you have to think for more than 5 seconds about why you need it, get rid of it. Extra emphasis on security plugins, you can have security without weighing down the web app and database further (some of these write visitors to a plugin-specific table, meaning zero web sessions without a matching MySQL session, rendering caching effectively useless).

I don’t really think you need CPU optimized unless something is broken on the site, and that is the angle I would approach it from. If you need it, a plugin is probably causing more activity than needs to occur. It should take almost no processing power to serve a cached page.

Jarland

Have another answer? Share your knowledge.