Step
|
Title
|
Resources
|
Step 0
|
Analyze Request Flow
|
You can use standard HTTP request analysis in the browser to analyze the request flow. For more info on how to do this on Chrome, see:
|
Step 2
|
Are requests coming from external hosts?
|
You can use standard HTTP request analysis in the browser to analyze the request flow. See the above links on how to do this on Chrome.
|
Step 3
|
Can the requests be cached?
|
For more information on cacheable requests and general Dispatcher performance optimization advice, see Dispatcher Performance Optimization.
|
Step 4
|
Are requests coming from the Dispatcher?
|
Check the Dispatcher debugging documentation to see if the requests are cached properly.
|
Step 5
|
Is the Dispatcher trying to authenticate each request via AEM?
|
Check if the dispatcher sends HEAD requests to AEM for authentication before delivering the cached resource. You can do this by looking for HEAD requests in the AEM access.log. For more information, see Logging.
|
Step 6
|
Is the geographic location of the Dispatcher far away from the users?
|
Move the Dispatcher closer to the users.
|
Step 7
|
Is the network layer of the Dispatcher OK?
| Investigate the network layer for saturation and latency issues. |
Step 8
|
Is the slowness reproducible with a local instance?
|
Use Tough Day to replicate "real world" conditions from the production instances. If this is not realistic for the slace of your development, make sure to test the production instance (or an identical staging one) in a different network context.
|
Step 9
|
Is the geographical location of the server far away from the users?
|
Move the server closer to the users.
|
Steps 10 and 29
|
Investigate network layer
|
Investigate the network layer for saturation and latency issues.
For the author tier, it is recommended that the latency does not surpass 100 milliseconds.
For more information on performance optimization tips, see this page.
|
Step 11
|
Move server closer or add one per region
| |
Step 12
|
Troubleshoot AEM server
|
Check the following sub steps in the diagram for more information.
|
Step 13
|
Check hardware requirements
|
Check the documentation on Hardware Sizing Guidelines.
|
Step 14
|
Check for frequent causes of performance issues
| |
Step 15
|
Find slow requests
|
You can check for slow requests by analysing the request.log or by using rlog.jar.
For more information about using rlog.jar, see this page.
|
Step 16
|
Profile server
|
For information about profiling tools you can use with AEM, see Tools for Monitoring and Analyzing Performance.
|
Step 17
|
Find slow methods in profiling
| |
Step 18
|
Common scenarios of profiling
|
See Analyzing Specific Scenarios in the Performance Optimization section.
|
Step 19
|
100% CPU
| |
Step 20
|
Out of memory
| |
Step 21
|
Disk I/O
|
See the Disk I/O section in the Monitoring and Maintaining documentation.
|
Steps 22 and 22.1
|
Cache ratio
| |
Step 23
|
Slow queries
| |
Step 24
|
Repository tuning
| |
Step 25
|
Workflows running
| |
Step 26
|
MSM Infrastructure
| |
Step 27
|
Assets tuning
| |
Step 28
|
Unclosed sessions
| |
Step 30
|
Move dispatcher closer (add one per "region"?)
| |
Step 31
|
Use CDN in front of dispatcher
| |
Step 32
|
Use session management at the dispatcher level to offload AEM server
| |
Step 33
|
Make requests cacheable
|
How to improve cache ratio; make requests cache-able (Dispatcher best practices)
Also, take into consideration the below settings in order to optimize your caching configurations
1. Set a no-cache rule for HTTP requesrst that are not GET
2. Configure query strings to not be cacheable
3. Do not cache URLs with missing extensions
4. Cache authentication headers (possible since Dispatcher version 4.1.10)
|
Step 34
|
Upgrade dispatcher version
|
You can download the latest Dispatcher version at this location:
https://www.adobeaemcloud.com/content/companies/public/adobe/dispatcher/dispatcher.html |
Step 35
|
Configure dispatcher
| |
Step 36
|
Check cache invalidation
| |
Steps 37 and 38
|
Lazy-loading
| |
Step 39
|
Use pre-connect to reduce connection overhead
|
See the Gem Session indicated above. Also, additional documentation preconnect on W3c:https://www.w3.org/TR/resource-hints/#dfn-preconnect
|
Steps 40 and 41
|
External hosts latency and response time
|
Investigate the latency and response time for the external hosts.
|
Steps 45
and 47 |
Using HTTP/2
|
See the Gem Session for steps 37,38 and 39. Also, check out this forum post on HTTP/2 support.
|
Step 49
|
Shrink payload size
| |
Steps 42 and 43
|
Keep-Alive
|
Is the Keep-Alive header present in the different requests to re-use connections? Otherwise, it would mean that each requests leads to another connection establishment, which introduces unnecessary overhead. (Standard HTTP request analysis in the browser)
You can check the Proxy Server tool to check for Keep-Alive connections.
|
Step 44
|
How many requests are made?
|
Perform standard HTTP request analysis in the browser.
|
Step 46
|
Reduce number of requests
|
1. Concatenate resources (images, CSS sprites, JSON, etc.)
2. Clientlibs embedding:
a. Creating Client Library Folders - see heading Using embedding to minimize requests
|
Step 48
|
What is the size of the payload?
|
Standard HTTP request analysis in the browser
|
Steps 50 and 51
|
JS code blocking
|
AEM4BEGINNER blog is for Beginners who are interested in learning Adobe Experience Manager (AEM) aka Adobe CQ5 from basics. The Information provided in this blog is for learning and testing purposes only. Here, I have posted the information which I know or gathered from different sources.
April 23, 2020
Estimated Post Reading Time ~
AEM performance Analysis from top to Bottom for each layer of the system
Reference Links
By
aem4beginner
No comments:
Post a Comment
If you have any doubts or questions, please let us know.