CAE Performance Tuning Summary

Last updated 17 minutes ago

A concise summary of CAE performance tuning strategies, covering metrics, caching, GC, image transformation, and general advice.

LightbulbWhat you will learn

  • Knowing how to identify and address CAE performance bottlenecks

Person reading a bookPrerequisites

  • Blueprint Workspace
  • CAE knowledge

Person in front of a laptopTarget Audience

This guide is for Developers.

Metrics First

First set up monitoring via /actuator/prometheus. Key metrics:

Metric What to Watch

http_server_requests_seconds

Slow or frequently repeated requests

jvm_memory_used_bytes{area="heap"}

Heap pressure

jvm_gc_overhead

GC consuming too much CPU

coremedia_cache_evictions_total

High eviction rate = cache too small

coremedia_cache_gets_total

Compare against evictions — reads should dominate

coremedia_cache_evaluation_duration_seconds

Cost of recomputing evicted entries

coremedia_cache_level{class="com.coremedia.cap.heap"}

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_overhead and 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=true to 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:

    cache.capacities.com.mycompany.MyCacheKey=5000

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

com.coremedia.transform.throttle.permits

max heap / 4 (in MB)

Concurrent transformation permits

com.coremedia.transform.throttle.hard-limit

true

Reject (vs. queue) when permits exhausted

com.coremedia.transform.throttle.safety-factor

3.0

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.

Copyright © 2026 CoreMedia GmbH, CoreMedia Corporation. All Rights Reserved.Privacy | Legal | Imprint
Loading...