Details
-
Bug
-
Resolution: Done
-
Major
-
6.3.0, 6.3.1.GA, 6.3.2.GA
-
None
-
ER3
Description
Under heavy load, the transaction per seconds value keeps decreasing.
We have found out, that on every KieServer invocation udpateReleaseId methos is called
see:
https://github.com/droolsjbpm/droolsjbpm-integration/blob/6.4.x/kie-server-parent/kie-server-services/kie-server-services-common/src/main/java/org/kie/server/services/impl/KieContainerInstanceImpl.java#L83
This leads to frequent invocations of getMarshallers and disposeMarshallers methods
https://github.com/droolsjbpm/droolsjbpm-integration/blob/master/kie-server-parent/kie-server-services/kie-server-services-common/src/main/java/org/kie/server/services/impl/KieContainerInstanceImpl.java#L120
However - these methods are synchronized. Which is creating bottle neck during concurrent access - imagine 20 threads starting a process deployed onto kie-server in a loop for 10 min.
We have found out that updateReleaseId() call was removed after this was fixed
https://issues.jboss.org/browse/JBPM-5235
It looks fine now:
https://github.com/droolsjbpm/droolsjbpm-integration/blob/6.5.x/kie-server-parent/kie-server-services/kie-server-services-common/src/main/java/org/kie/server/services/impl/KieContainerInstanceImpl.java#L86
With this fix in place - we are no longer observing performance degradation over time.
Find the attached gc logs and thread dumps
Attachments
Issue Links
- is cloned by
-
RHBRMS-2608 [GSS] (6.3.z) kie-server performance degrades over time
- Verified