- 10% of the project efforts should be allocated to performance.
- Performance optimization is ongoing activity and should have more preference after the go live where the real load comes into the picture
- Simulate real scenarios
- Establish solid goals
- Take one bottle neck at a time
- Guidelines
- 70% of the pages should take 100ms
- 25% of the pages should take 100-300ms
- 4% pages should take 300-500ms
- 1% of the page should take 500-1000ms
- No page should take more than 1000ms
- Focus on dispatcher caching efficiency
- use of queries
- No of child node should not exceed 1000 nodes
- use java profiler
- use performance monitor
- collect as much information as possible before making optimization decisions
- try to replicate
- observe changes in code
- check if the issue occurs only during certain time
- monitor search request timing
- limit the concurrent workflow processing
- configure maximum parallel jobs
- Do error scenario tests
- Endurance tests
- Dispatcher Tuning
- Calculate the dispatcher cache ratio : Pages served from cache vs page served from publisher
- Consistent page encoding
- Avoid url parameters because pages with parameters do not get cached. Use selectors instead.
- Put title image file in the same location as page so that it can be invalidated when the page is updated.
- Same way invalidate the image files used as navigation texts
- Avoid free customization of pages and provide say a definite number of customized pages so that they can be cached.
- Use sticky connections if possible.
- Read here for backup performance in detail
- set queue.maxparellel to 50% of your CPU capacity
- create indexes for the queries most frequently searched
- set -Doak.queryLimitMemory
- set -Doa.queryLimitReads
- set -Dupdate.Limit
- set -Doak.fastQuerySize = true
- For Lucene Indexes set enable copyOnRead, copyOnWrite, Prefetch Index Files
- While using file data store set the value of cacheSizeInMB and maxCacheBinarySize
- Use offline compaction for TarMK
- Allow all css and js to combine into clientlib.css and clientlib.js respectively
- minify the files
- Use MongoMK on author only and only if high load of concurrent users expected. E.g. 1000 users or more
Tuesday, June 16, 2020
AEM Performance Optimization Tips
AEM Performance Optimization Tips
Subscribe to:
Post Comments (Atom)
Some more AEM 6 Interview Questions for Architects
Some more AEM 6 Interview Questions for Architects 1. Consider you have a workflow with two steps. One step is to transfer the asset from s...
-
AEM Default Search vs. Solr Search AEM Oak Lucene Search : This is Oak indexing. Since this is inbuilt search, the indexing happens on...
-
Custom Transport Handler in CQ5.6/AEM6 There are a lot of blogs written on this one. However, none of them explain about how it should ...
-
Content Fragments Vs Experience Fragment Content Fragment : - Presentation Agnostic i.e. they can be used in any type of presentation la...
No comments:
Post a Comment