cache.capacities.com.mycompany.MyCacheKey=5000
CAE Performance Tuning Summary
A concise summary of CAE performance tuning strategies, covering metrics, caching, GC, image transformation, and general advice.
What you will learn
- Knowing how to identify and address CAE performance bottlenecks
Prerequisites
- Blueprint Workspace
- CAE knowledge
Target Audience
Metrics First
First set up monitoring via /actuator/prometheus. Key metrics:
| Metric | What to Watch |
|---|---|
|
Slow or frequently repeated requests |
|
Heap pressure |
|
GC consuming too much CPU |
|
High eviction rate = cache too small |
|
Compare against evictions — reads should dominate |
|
Cost of recomputing evicted entries |
|
Memory used by cached entries |
Inspect Thread Dumps
Capture thread dumps (jstack or /actuator/threaddump) to identify where threads spend time.
CoreMedia Support will request these as a first step.
Garbage Collection
-
Monitor
jvm_gc_overheadand GC pause metrics. -
Keep max heap within physical memory limits of the container.
-
Balance cache capacities against available heap — larger caches reduce evictions but increase GC pressure.
CacheKey Cache Classes
The com.coremedia.cache.Cache partitions values into cache classes.
The default class is java.lang.Object.
-
Red flag: high eviction rate in any cache class.
-
Inspect
/actuator/cache/java.lang.Object?keys=trueto see what lives in the default class. -
For releases starting with 2512.0.2, 2506.0.4, 2406.3.2, and 2406.2.3, you can introduce dedicated classes by adding capacity config:
Dataview Caching
Dataview entries use the content bean class as their cache class when a capacity is configured for that class.
Otherwise they fall into AssumesIdentity or java.lang.Object.
Configure capacities for specific content bean classes to control their caching independently.
Image Transformation
Image transformation is CPU- and memory-intensive.
The ThrottlingBlobTransformer limits concurrency:
| Property | Default | Description |
|---|---|---|
|
max heap / 4 (in MB) |
Concurrent transformation permits |
|
|
Reject (vs. queue) when permits exhausted |
|
|
Memory estimation multiplier |
Key cache classes to monitor:
-
com.coremedia.transform.image.java2d.LoadedImageCacheKey -
com.coremedia.transform.impl.TransformedBlobKey
Enable the persistent blob cache to survive restarts:
com.coremedia.transform.blob-cache.base-path=/var/cache/coremedia/persistent-transformed-blobcache
com.coremedia.transform.blob-cache.size=1GB
For high-volume scenarios, consider the CoreMedia Image Transformation Service.
General Advice
-
Use reproducible load tests with production-like content and request patterns.
-
Balance CDN caching, content freshness, and resource allocation.
-
Performance tuning is an iterative art — let metrics guide your decisions.
-
Consider engaging CoreMedia Customer Success for expert assistance.