Sitecore Performance Testing and Tuning
One of our main focuses in Omnia is to deliver high-performance websites that go beyond our clients’ expectations. In this post, we talk about some of the techniques that our Sitecore team uses to test and enhance the performance of Sitecore projects.
The first step in performance testing and tuning is to define the performance factor. This can be done by calculating the website response time, acceptable throughput, simultaneous sessions, and maximum supportable traffic. There are many tools that can help you to measure the performance factor – Our preferred tool is JMeter- you can download it from this link. JMeter is a free stress testing and monitoring tool, using this tool we can measure site throughput in pages per second and overall.
Another performance tip is “.Net Profiling”. This technique helps our Sitecore team to find out the performance bottlenecks in the custom .net code. The profiling is usually executed in different project tiers such as Services, Presentation, and Data Layers.
ANTS Memory Profiler is the tool that helps us to find out which parts of the code take most time and resources, you can download it from this link.
Sitecore Debug Mode
Sitecore has the ability to execute performance testing for it’s rendering components from Sitecore client. This mode calculates the rendering process that the page goes through with useful information such as duration and items accessed. This is a browser-based tool which we use from Sitecore client without installing any software, it provides a high-level of the performance of a single page.
Sitecore Cache and Memory Usage
In Sitecore there is an administration page that provides information about each Sitecore cache. From this page, you can identify If any cache entry consumes a large amount of memory. If this is the case then we have to optimize this cache and reduce its memory usage.
Other Performance Enhancements
- Configure Sitecore Caches (Database, Prefetch, Output).
- Disable Performance Counters.
- Disable Memory Monitor.
- Use Content Delivery Network for static resources.
- Minimize the number of HTTP Requests.
- Add Expires or a Cache-Control Header for static resources.
- Enable Gzip compression.
- Optimize Images.
- Minify HTML.
- Avoid Redirects.
- Avoid empty src or href.
- StyleSheets at the Top of the page.
- Scripts at the Bottom of the page.