Summary and Recommendations
We started out on this research project to see how Magento sites in general are performing for the end users, and the results are in line with what we expected. The questions we wanted to answer and enlighten were;
- Is Full Page Caching a viable way of solving Magento performance issues?
- Will replacing the cache backend improve Magento performance?
- Are there other better ways to solve Magento performance issues?
Performance problems for Magento sites are often attempted solved by installing more applications, more extensions and more code. The results demonstrate that this usually is the wrong way to address performance problems. Read the reflection to get insights into why this is so.
Is Full Page Caching a viable way of solving Magento performance issues?
It is possible to achieve good front end performance by implementing full page caching, however only one of the 15 sites tested provided an example of effective use of full page caching for performance. For all stores with average response times higher than 1 second, results show that visitors usually do not hit the cached pages. Also, Full Page Caching will never speed up back-end performance.
Will replacing the cache backend improve Magento performance?
None of the Servebolt hosted sites use alternative caching backends. The reason for that is that cache backend I/O normally is not what is causing performance problems. If cache I/O is the problem, switching to a memory based cache backend will help – but for most Magento sites, the PHP/MySQL performance is what slows the site down. The only medicine for slow PHP/MySQL is faster and better hosting.
Are there other ways to achieve exceptional Magento performance?
To achieve good performance, our main recommendation is to focus all efforts on speeding up the non-cached performance. This can often prove to be easier said than done, but to sum up the basics:
- Use a fast host with a properly configured OS and application stack
The standard setups you get on VPSes and cloud services do not deliver good performance.
- Fix all known bugs
Developers tend to ignore errors in the webserver logs, and Magento logs. Every bug makes your application work slower, and fixing real problems is much harder when error logs are big.
- Test all pages for performance before deploying new code
When implementing changes, make sure your front, category, product and checkout pages still respond in a timely matter. Also always keep an eye on your back end performance.
- Select extensions to use with care
A lot of extensions hurt performance. Uninstall extensions you don’t use.
- Test your Magento with Full Page Caching disabled
Accept the fact that most users will hit pages that are not cached. Full page caching is for scaling, not for performance. The uncached performance is what you need to keep an eye on.
The reward for working like this will result in better performance, in both the front-end and backend.
When you encounter performance problems, the way of dealing with them is to pinpoint exactly what the problem is. This is usually easiest done by using the Magento Profiler and database query logging.
Thank you for checking out this study. If you have comments, questions or specific cases you would like to discuss – feel free to participate below, or contact us on chat, phone or by mail!
– The Servebolt Team