How I can best evaluate the CPU and ram usage needed for my WooCommerce site

I’m wondering how I can best evaluate the CPU and ram usage needed for my WooCommerce site. Please check the screenshots of this past week’s sales shared in the chat.

  • Adam
    • Support Gorilla

    Hi Jonathan

    I hope you’re well today and thank you for your question!

    It’s a fair question but… no answer, I’m afraid.

    The starting point should always be to try to meet basic WP requirements:

    https://wordpress.org/support/article/requirements/

    But that’s just basics. If it comes to CPU and RAM, it’s really much more complex than just core speed/memory amount and the number of orders and/or number of visits on site are way to little to be able to do any estimations.

    To start with, the same CPU and the same amount of RAM can behave quite differently running different software. If we stick to WordPress solely, a lot depends on the configuration of the site itself (so WP core + theme + plugins) but that’s just a small “part” of it.

    It’s also important how the server itself is setup/configured – is it shared server or a VPS or a fully dedicated machine? How’s the OS, webserver, PHP and database configured and how much resources it uses. How is server managing resource allocation? There’s way more questions here than possible “theoretical answers”, I’m afraid.

    I’m pretty sure that you can find some “estimations” somewhere on the web but I can also tell that it’s usually not really reliable. Strictly theoretically speaking, I’d say that what you got at your disposal (if it comes to CPU – mentioned during the chat) should in most cases be more than enough but, again, that’d be just a “guess work”.

    If I was about to suggest something, it would be this:

    – assume that the hardware configuration that you have at hand is good enough
    – try reviewing the site, just browsing and using it, like you were a regular customer, and see how you perceive performance, subjectively
    – if you feel it’s not fine, then go through the usual optimization steps – check site with PageSpeed and GTMetrix, try to optimize resources, “slim it down” a bit and so on

    – do some “stress tests”/”load tests” on the site to simulate load and see what the service/host can handle.

    For the last step, services like these would be extremely helpful:

    https://loader.io/
    https://k6.io/
    https://flood.io/

    and then, if you got full root access to the server a basic “top” or “htop” Linux command would be a good start to measure server load but also

    – tools described here (to measure/monitor various aspects of server performance/behavior):

    https://www.tecmint.com/command-line-tools-to-monitor-linux-performance/

    – and stats such as e.g. New Relic:

    https://newrelic.com/

    Having that said, I realize that things kind of got complicated with these information but “stress testing” is really the most reliable way to asses what kind and “amount” of resources do you really need. If the site’s big and/or receives a lot of traffic it might be well worth giving it some time, though I also realize that it might turn out to be a bit complex and I think that actually hiring a professional sys-admin/devop to do such testing and to do necessary configurations/configuration adjustments “on the fly” could be a good idea.

    Best regards,
    Adam

  • Eric
    • Site Builder, Child of Zeus

    I can share my experience with my club’s annual sale/fundraiser. We were working fine with the wpmudev Bronze plan (1GB RAM, 1CPU) with an average of 7.8k visits per month. In anticipation of the sale, we upgraded to the Silver plan (2GB RAM, 2CPU) which is rated at 20k visits per month.
    The morning of the sale, customers were already on the site with items in the cart (payment was turned off) and performance was at a stand still.
    I upgraded to the Gold plan (8GB RAM, 4CPU) which took about 40 minutes to take affect, and then orders started pouring in.
    Hosting analytics showed that the Visits per day spiked to 1,202 (about 4.6 times our usual). It also shows that Requests jumped from a typical 28,000 per day to 120,000 (4x). Finally, Bandwidth spiked from the normal 200 MB to 2,300 MB (11.5x).

    We had about 150 sales but had to shut the sale down early because we noticed errors in inventory, so we lost out on probably another 50 to 100 sales that we expected. If we had started with the Gold plan we would have avoided all kinds of problems where Woocommerce entered quantity of 0 (instead of 1) randomly in dozens of orders, failed to record contact info for about a dozen orders, and about 50 credit card purchases timed out and the order was cancelled (PayPal Standard did not have this problem). Hope that gives you some perspective on what a real, ordinary garden club needed, for CPU and RAM.