AEM Assets is a crucial part of delivering high-quality digital marketing experiences that contribute to the achievement of business goals through increasing your content velocity.
If you work with a large number of assets within AEM Assets or regularly/periodically upload numerous assets, including videos and dynamic media then optimizing your digital asset management experience is critical for system efficiency.
In this session I will be sharing various recommended , documented and known best practices and approaches for AEM Assets which will be useful for Authors ,Developers and AEM system administrator.
The agenda for this session includes various best practices on AEM Assets and
See the power of Assets and what they can do
Adobe recommends enabling HTTPS because many companies have firewalls that sniff HTTP traffic, which adversely impacts uploads and corrupts files.
For large file upload , prefer wired connections instead of wireless.
-XX:+UseConcMarkSweepGC = Enable Concurrent Mark Sweep (CMS) Collector
-Doak.queryLimitInMemory=500000
-Doak.queryLimitReads=100000
-Dupdate.limit=250000
-Doak.fastQuerySize=true
The DAM Update Asset workflow contains a full suite of steps that are configured for tasks, such as Scene7 PTIFF generation and InDesign Server integration. However, most users may not require several of these steps. Adobe recommends you create a custom copy of the DAM Update Asset workflow model, and remove any unnecessary steps. In this case, update the launchers for DAM Update Asset to point to the new model.
Transient Workflow : To optimize high ingestion loads, Adobe suggests switching the DAM Update and XMP Metadata Writeback workflow to a transient workflow.
As the name implies, runtime data related to the intermediate work steps in transient workflows are not persisted in the JCR when they run (the output renditions are persisted of course).
It causes a 10% reduction in the workflow processing time and significantly reduces repository growth.
No more CRUD workflows are required to purge.
In addition, it reduces the number of TAR files to compact. If your business dictates persisting/archiving workflow runtime data for audit purposes, do not enable this feature.
Selective rendition generation: only generate the renditions you need by adding conditions to the asset processing workflow, so that more costly renditions are only generated for select assets.
/workflow/ Dam Updtae Asset >> Process Thumbnails step.
Shared data store among instances:
Implementing an S3 or Shared File Datastore can help to save disk space and increase network throughput in large-scale implementations. However there may be other additional task in maintaining such deployement. But this can be a good tradeoff for better performance.
Normally, you should run purging workflows on a weekly basis.
However, in resource-intensive scenarios, such as during wide-scale asset ingestion, you can run it more frequently.
https://helpx.adobe.com/experience-manager/kb/remove-web-rendition-dimension-limit.html.
https://helpx.adobe.com/experience-manager/kb/cqbufferedimagecache-consumes-heap-during-asset-uploads.html
http://cq-ops.tumblr.com/post/120964732659/new-workflow-features-in-aem-61
Adobe recommends enabling HTTPS because many companies have firewalls that sniff HTTP traffic, which adversely impacts uploads and corrupts files.
For large file upload , prefer wired connections instead of wireless.
-XX:+UseConcMarkSweepGC = Enable Concurrent Mark Sweep (CMS) Collector
-Doak.queryLimitInMemory=500000
-Doak.queryLimitReads=100000
-Dupdate.limit=250000
-Doak.fastQuerySize=true
The DAM Update Asset workflow contains a full suite of steps that are configured for tasks, such as Scene7 PTIFF generation and InDesign Server integration. However, most users may not require several of these steps. Adobe recommends you create a custom copy of the DAM Update Asset workflow model, and remove any unnecessary steps. In this case, update the launchers for DAM Update Asset to point to the new model.
Transient Workflow : To optimize high ingestion loads, Adobe suggests switching the DAM Update and XMP Metadata Writeback workflow to a transient workflow.
As the name implies, runtime data related to the intermediate work steps in transient workflows are not persisted in the JCR when they run (the output renditions are persisted of course).
It causes a 10% reduction in the workflow processing time and significantly reduces repository growth.
No more CRUD workflows are required to purge.
In addition, it reduces the number of TAR files to compact. If your business dictates persisting/archiving workflow runtime data for audit purposes, do not enable this feature.
Selective rendition generation: only generate the renditions you need by adding conditions to the asset processing workflow, so that more costly renditions are only generated for select assets.
/workflow/ Dam Updtae Asset >> Process Thumbnails step.
Shared data store among instances:
Implementing an S3 or Shared File Datastore can help to save disk space and increase network throughput in large-scale implementations. However there may be other additional task in maintaining such deployement. But this can be a good tradeoff for better performance.
Normally, you should run purging workflows on a weekly basis.
However, in resource-intensive scenarios, such as during wide-scale asset ingestion, you can run it more frequently.
https://helpx.adobe.com/experience-manager/kb/remove-web-rendition-dimension-limit.html.
https://helpx.adobe.com/experience-manager/kb/cqbufferedimagecache-consumes-heap-during-asset-uploads.html
http://cq-ops.tumblr.com/post/120964732659/new-workflow-features-in-aem-61
Solution: Offload jobs to a farm of Experience Manager worker instances. You can offload entire workflows or just a few heavy steps by connecting an array of processing instances to the primary author instances via DAM proxy workers. The primary author instance thereby remains free to serve other users. DAM proxy workers are in charge of supervising remote tasks, gathering the results, and feeding them to the local workflow execution. ‘’
Solution: Dedicate processing instances for asset ingestion. You can provision an instance dedicated to asset ingestion that starts and executes all workflows, generates renditions, extracts metadata, and so on. The instance replicates generated content in its final form to the central author instances, where editors can continue the ongoing editing process.
For both solutions, it is recommended to share the data store via a network file system to avoid unnecessary copying of binary payloads (see Blueprint 6).
Other aspects to monitor are CPU utilization and repository read cache thrashing.
Segregate the import process on a dedicated author instance with its own repository. At completion, replicate a full diff/delta to the author environment, with chained replication to the publish environment, if necessary. Use a reserved replication queue to avoid delaying important editorial changes from publication.
Consider sharing a networked or cloud storage solution like network-attached storage (NAS) or Amazon S3 across all author instances.
A shared data store, along with the Experience Manager DAM binary-less replication feature, reduces replication network traffic because all instances can read the binary directly from the data store. However, this approach requires running data store garbage collection (GC) on the instance that keeps references to all assets.
Concurrent authors are users who are actively working on the system. Logged-in but inactive authors do not place additional load on the system, because Experience Manager is a stateless platform. Two types of authors are defined. Author behavior Typical system usage Limiting factor Producing authors Heavyweight editing: upload assets, demand renditions, trigger workflows CPU, memory, I/O Consuming authors Lightweight editing: Preview or review content, search and download assets, modify metadata CPU In general, consuming authors do not present an issue, because they are mostly read-intensive. Forming a cluster of author instances with a dispatcher in front helps distribute the CPU load evenly. With a large number of producing authors in active production, it is recommended to spin off each project into a separate author instance or environment in which the work in progress takes place. This technique is named content partitioning or sharding
https://docs.adobe.com/docs/en/aem/6-2/administer/content/assets/best-practices-for-assets/assets-sizing-guide.html
When sizing the environment for an Adobe Experience Manager (AEM) Assets implementation, it is important to ensure that there are sufficient resources available in terms of disk, CPU, memory, IO, and network throughput.
Sizing of these resources requires an understanding of how many assets are being loaded into the system. If a better metric is not available, you can divide the size of the existing library by the age of the library to find the rate at which assets are created.ware and software components that can affect performance.
A common mistake made when sizing the required disk space for an Assets implementation is to base the calculations on the size of the raw images to be ingested into the system. By default, AEM creates three renditions in addition to the original image for use in rendering the AEM UI elements. In previous implementations, these renditions have been observed to assume twice the size of the assets that are ingested.
Shared Datastores
For large datastores, you can implement a shared datastore either through a shared file datastore on a network attached drive or through an S3 datastore. In this case, individual instances need not maintain a copy of the binaries. In addition, a shared datastore facilitates binary-less replication and helps reduce the bandwidth used to replicate assets to publish environments or offloading instances.
- It can be used to authors and publish instances.
Adobe recommends sharing the datastore between a primary author instance and offload author instances to reduce overheads in workflow offloading.
You can also share the datastore between the author and publish instances to minimize the traffic during replication.
Owing to some pitfalls, sharing a datastore is not recommended in all cases.
Single Point of Failure
Increased Complexity for operations like Garbage Collections
Currently, Adobe has not tested the system for loading greater than 1.2 million assets.
AEM currently lets you upload up to 2GB of assets at a time.