CQBufferedImageCache consumes heap during Asset uploads
Issue: Adobe Experience Manager crashes during large asset uploads
Adobe Experience Manager 6.x either crashes or is slow during a large asset upload. Heap dump analysis shows that the CQBufferedImageCache is consuming a quarter or more of the heap.
The default maximum cache size for CQBufferedImageCache is set to a quarter of the JVM heap size.
To illustrate the problem, let's say you have a system with a max heap (-Xmx param) of 5 GB, an Oak BlobCache set at 1 GB, and Document cache set at 2 GB. In this case, the buffered cache would take max 1.25 GB and that would leave only 0.75-GB memory for unexpected spikes. Eventually, the JVM fails with OutOfMemoryErrors. To solve the problem, reduce the configured max size of the buffered image cache.
When uploading large amounts of assets to Adobe Experience Manager, tune the buffered cache size by configuring it via the OSGi Web Console.
- Go to http://host:port/system/console/configMgr/com.day.cq.dam.core.impl.cache.CQBufferedImageCache
- Set the property cq.dam.image.cache.max.memory in bytes for example, 1073741824 is 1 GB (1024*1024*1024 = 1 GB).
From AEM 6.1 SP1, if you're using a sling:osgiConfig node for configuring this property, make sure to set the data type to Long.