The problem
We wanted to optimize site-wide page load times as far as we could and the resulting customer experience. We were also cognizant of specific issues relating to load times for CMS pages, and the impact that merchandising by the ecommerce team in backend Admin was having on concurrent frontend page load times.
The solution
Our approach utilized Magento’s native profiler tool, drilling down into the code base as far as needed, and Apache JMeter to load test for up to 200 concurrent users – ahead of Christmas turbulence! I’d expected an errant third-party extension to be at least part of the problem, and this was borne out by detailed timings provided by the tools. The solution was commenting out block layout for an unused Megamenu with consequential improved CMS page load times of about 40%. Defined within an FPC placeholder, the errant block had defied improved load times through Enterprise’s Full Page Cache. Poor timings resulting from running Admin and frontend HTTP requests concurrently in JMeter, led to a fundamental rethink of the architecture. Consequently, the store now has backend Admin running on a separate server with substantially improved customer experience on the frontend. We investigated, our approach to caching in general, concluding that Redis would replace Memcached and Varnish wasn’t required (yet).