How to make your Adobe AEM site perform like an Olympic athlete
April 20, 2016
‘I love poorly performing websites’ no one ever said. A wait time of 20 seconds when the final payment transaction is in progress might be acceptable, but nobody has the endurance to wait for an offer or random content to build up in the browser with the speed of a turtle.
This would make you lose customers. To avoid that, here find my basic 5 rules to follow for making your AEM website perform smooth, fast and flexible like a top athlete.
Just like us human beings, each application and environment is unique and individual. Let’s get that clear. That’s why the tips given here may only partly fit for your application. However, you may still want to consider applying them as preventive measures to keep your application in a good shape. Just like with our own health, preventing is better than curing, right?
1. Let others eat the junk (do not enter each fast food restaurant you come across)
Cache the incoming requests via a Content Delivery Network (CDN) such as Akamai, Varnish and even a Dispatcher before the AEM environment can help caching e.g. generating merged and minified Client Libraries for CSS and JavaScript.
2. Do intensive sports regularly; run fast until you reach your limit
Use SSD discs for performant I/O and try to keep the Index in Memory. Leverage caching for repository intense operations that retrieve data, you can store the results and only update them via a listener on the affected nodes. If you are already on an Oak based implementation and search items using custom properties, remember to create Oak Index entries for them.
3. Do not argue or make excuses for not exercising in the past but instead, use that time for sports!
Disable Versioning on replication if not needed. Also, disable generation of audit entries if not needed. This will reduce the amount of I/O generated. We advise the editors to deliberately create a new version with a proper comment when they want to store a version.
4. Make no excuses about being too busy, instead, focus on the most important stuff and only that, so you are freed up for sports
Keep your amount of Inbox entries low! Especially Granite TouchUI will not render when entries with more than 200.000 characters occur. Also, the retrieval of these entries in general is still in constant optimization so it is good practice to regularly go through them in order to reduce their number.
5. Lost weight and gained power? Move on to the next level!
Optimize Java VM settings regarding Garbage Collection and Heap sizing regularly. Each release should have required load tests that are compared with the previous version. Monitor and check GC Logs and see how these compare over versions. In case a lot of Garbage Collection events occur, it is crucial to take heapdumps and analyze them. Leverage the power of profilers to learn about bottlenecks in your implementation.
Ideally, you review performance from time to time as the versions evolve. If necessary, parameters even need to be adjusted. It’s just like with any other fitness program: you only stay in good shape if you perform your exercises regularly.
Do you wanna know more about Adobe and how we can help? Contact us directly.