> Honest question: do you not consider caching to be a normal part of a dynamic web application?
We should not be needing bare metal servers with 4 GHz CPUs to serve a non-interactive site with ~4000 visitors a day. Yet, without full-page caching (i.e., bypass Wordpress/PHP entirely and serve .html files straight from nginx), the servers would melt under the load.
Rendering twenty images and forty text fields out of database should not take several seconds on a modern server. Yet, Wordpress has no problems taking a dozen seconds even under light load conditions – mind you, that's time purely spent in PHP, for rendering, not on the database.
Wow.. So I work with Wordpress on a day to day basis as well and we don't see anything like this.. We have pretty DB-heavy sites (lots of ACF Pro fields and lots of relationships) and we're handling bigger loads than that, on much smaller virtual hardware..
I'm not making any specific value statement about your setup here, I'm just surprised by what you're seeing on your end.
It could just as well be our ACF+CPT fuckery that leads to this – I'm not that involved in the actual application side of things; I just provision the hardware and OS stack.
Still, we're usually seeing a lot better performance with everything that's not wordpress – be it our in-house PHP framework, or node, Rails or Python apps.
Opcache is enabled, SSDs are in hardware raid and the whole time is spent inside PHP, MySQL finishes all queries after 0.02 seconds. The usual suspects are all dealt with.
We should not be needing bare metal servers with 4 GHz CPUs to serve a non-interactive site with ~4000 visitors a day. Yet, without full-page caching (i.e., bypass Wordpress/PHP entirely and serve .html files straight from nginx), the servers would melt under the load.
Rendering twenty images and forty text fields out of database should not take several seconds on a modern server. Yet, Wordpress has no problems taking a dozen seconds even under light load conditions – mind you, that's time purely spent in PHP, for rendering, not on the database.