High heap utilization in ExtensionManagerBuses
Environment
- JBoss Enterprise Application Platform (EAP) 6
Issue
- We have high heap utilization and the heap dump shows considerable heap usage in
org.apache.cxf.bus.extension.ExtensionManagerBus. These trace back to BusFactory's threadBusses WeakHashMap
Resolution
- Increase heap to meet demands of pool sizes and resulting Bus counts.
- Decrease thread counts or switch your web connectors to use an executor with a
keepalive-timeset to result in the reclamation of idle threads and their correspondingExtensionManagerBus.
Root Cause
- A bus is created and cached for every thread that uses it. The buses would be freed from this cache if their corresponding thread ever dies and is collected. The web default pooling behavior though is to never reclaim threads so those buses will persist indefinitely along with their threads. The number of buses would become bounded by the web pool size.
Components
Category
Tags
This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.