Bug 777901 (SOA-429) - jBPM has poor performance
Summary: jBPM has poor performance
Keywords:
Status: CLOSED NEXTRELEASE
Alias: SOA-429
Product: JBoss Enterprise SOA Platform 4
Classification: JBoss
Component: JBPM - within SOA
Version: 4.2 CP01
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: 4.2 CP01
Assignee: Martin Vecera
QA Contact:
URL: http://jira.jboss.org/jira/browse/SOA...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-02-14 15:06 UTC by Martin Vecera
Modified: 2008-05-28 13:11 UTC (History)
0 users

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-05-28 13:11:54 UTC
Type: Bug


Attachments (Terms of Use)
Performance2.esb (8.75 KB, application/octet-stream)
2008-02-21 10:14 UTC, Martin Vecera
no flags Details
Performance4.esb (9.69 KB, application/octet-stream)
2008-02-21 10:15 UTC, Martin Vecera
no flags Details
Performance_jBPM.esb (12.04 KB, application/octet-stream)
2008-04-04 14:08 UTC, Martin Vecera
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Bugzilla 777576 0 urgent CLOSED QE BLOCKERS (links to all blocked QE tests) 2021-02-22 00:41:40 UTC
Red Hat Issue Tracker SOA-429 0 Major Closed jBPM has poor performance 2013-12-18 08:03:19 UTC

Internal Links: 777576

Description Martin Vecera 2008-02-14 15:06:54 UTC
Affects: Release Notes
Date of First Response: 2008-02-14 10:10:54
project_key: SOA

Performance test based on bpm_orchestration2 is able to process only ~1 5kB message/sec.

Comment 1 Martin Vecera 2008-02-14 15:07:47 UTC
Link: Added: This issue related SOA-84


Comment 3 Aleksandar Kostadinov 2008-02-14 15:10:54 UTC
you're lucky, for me it was 2 sec to process single message (measured visually watching server log)

Comment 4 Kevin Conner 2008-02-18 12:49:58 UTC
Martin, can you please attach a standalone test showing the performance degradation?

Thanks.

Comment 5 Martin Vecera 2008-02-18 14:38:05 UTC
There's no degradation it's constantly slow. It's hard to provide standalone test case, because you need to deploy the process. Due to many changes we are doing it programmatically in out framework. You can see the problems in performance test 4. Len has provided short how to: http://intranet.corp.redhat.com/ic/intranet/SOAPTestCheatsheet.html
You can also use this one: http://intranet.corp.redhat.com/ic/intranet/SOAPerformanceTestsHowTo.html
If you have any questions, you can find me on IRC. Good luck!

Comment 6 Martin Vecera 2008-02-20 14:53:46 UTC
Well, I just updated the wiki page http://intranet.corp.redhat.com/ic/intranet/SOAPerformanceTestsHowTo.html
You don't need to compile anything nor checkout svn. Just install one library (jboss-test.jar) and one service (test-result-service.sar), deploy the esb archive (I'll attach it in a while) and run run_gener_jms.sh from jmsmock application pack (configure jndi.properties and queue name in the script).

Comment 7 Martin Vecera 2008-02-20 15:08:33 UTC
Attachment: Added: Performance2.esb


Comment 8 Martin Vecera 2008-02-20 15:08:44 UTC
Attachment: Added: Performance4.esb


Comment 9 Martin Vecera 2008-02-20 15:09:51 UTC
But there's one major issue - how to deploy the process definition? Can you take it from esb archives, and deploy it manually via jbpm console?

Comment 11 Martin Vecera 2008-02-21 10:10:40 UTC
Just to make it clear. Performance test #2 actually doesn't use jBPM. It only simulates it's overhead. By comparing the results from #2 and #4, you can recognize the plain jBPM performance. I did some tweaking to the both perf. tests and will attach them here in a while. There's one problem with #4 - you have to deploy the process definition but I'm going to write a small easy to use wrapper for it. I'll give you a note once it is finished.

Comment 12 Martin Vecera 2008-02-21 10:11:00 UTC
Attachment: Removed: Performance2.esb 


Comment 13 Martin Vecera 2008-02-21 10:11:08 UTC
Attachment: Removed: Performance4.esb 


Comment 14 Martin Vecera 2008-02-21 10:14:53 UTC
Attachment: Added: Performance2.esb


Comment 15 Martin Vecera 2008-02-21 10:15:13 UTC
Attachment: Added: Performance4.esb


Comment 16 Martin Vecera 2008-02-21 15:18:00 UTC
I have just included jBPM process deployer into jmsmock.tgz and completed the instructions on http://intranet.corp.redhat.com/ic/intranet/SOAPerformanceTestsHowTo.html

Comment 19 Tom Baeyens 2008-03-07 08:14:37 UTC
i would need similar instructions in a jbpm-only environment.

Comment 21 Martin Vecera 2008-03-18 13:46:41 UTC
We are almost done preparing standalone test cases. For now we plan to support these 3 scenarios:

1) Plain process saying Hello in Czech.
2) Process with wait state signalled by another thread.
3) JobExecutor in play (used in jBPM-ESB integration).

We will rock the tests here on March 21st 2008.

Comment 22 Martin Vecera 2008-03-25 12:55:25 UTC
Plain jBPM performance tests implemented as ESB service.

Comment 23 Martin Vecera 2008-03-25 12:55:25 UTC
Attachment: Added: Performance_jBPM.esb


Comment 24 Martin Vecera 2008-03-25 13:21:33 UTC
I've just uploaded plain jBPM performance tests. They're implemented as a ESB service. The reason is simple - we get the same jBPM environment as ESB does.

The tests require test-service.sar as described here: 
* http://intranet.corp.redhat.com/ic/intranet/SOAPTestCheatsheet.html
* http://intranet.corp.redhat.com/ic/intranet/SOAPerformanceTestsHowTo.html

The test itself can be fired with message:
1) "test1.xml:1000" sent to queue/quickstart_performance_jbpm_Request - to run plain process saying Hello one thousand times
2) "test_signal.xml:1000" sent to queue/quickstart_performance_jbpm_signal_Request - to run process with wait state one thousand times
3) not yet implemented

Tests implementation:
https://svn.corp.jboss.com/repos/soa/trunk/qa/tests/quickstarts/performance_jbpm/src/org/jboss/soa/esb/samples/quickstart/performance_jbpm/MyAction.java

Default invokers:
https://svn.corp.jboss.com/repos/soa/trunk/qa/tests/quickstarts/tests/src/org/jboss/soa/esb/qa/tests/performance/jbpm/

The duration of each test is reported to console (stderr). It says "Test was finished by processing 1 messages in XXX ms). Only the time information is relevant. Substitute this "1" with number of messages you requested.

I'm going to run the tests in Hudson...

Comment 26 Mark Little 2008-03-27 10:26:27 UTC
Can you try disabling logging? That can be detrimental to performance of jBPM. We are going to disable it by default in the next release.

Comment 27 Mark Little 2008-03-27 10:26:27 UTC
Link: Added: This issue is related to SOA-476


Comment 28 Martin Vecera 2008-03-28 14:26:56 UTC
The test is not working in Hudson yet. jBPM logging is now being disabled in dbinstall tool. I'll keep you informed.

Comment 29 Martin Vecera 2008-04-02 17:56:30 UTC
Tests are running on Hudson. The third test can be started by sending "test_job_executor.xml:X" message to queue/quickstart_performance_jbpm_job_Request (where X is number required of process instances).

Current JobExecutor test starts and signals the process within the same thread. ESB uses two different threads so I'm developing another test - doublehreaded job executor test.

Comment 30 Martin Vecera 2008-04-02 17:57:42 UTC
Attachment: Removed: Performance_jBPM.esb 


Comment 31 Martin Vecera 2008-04-02 17:58:10 UTC
Attachment: Added: Performance_jBPM.esb


Comment 32 Martin Vecera 2008-04-04 14:07:44 UTC
Attachment: Removed: Performance_jBPM.esb 


Comment 33 Martin Vecera 2008-04-04 14:08:14 UTC
Attachment: Added: Performance_jBPM.esb


Comment 34 Martin Vecera 2008-05-28 13:10:36 UTC
Some minor fixes, the tests are now running smoothly.

For tests' implementation see https://svn.corp.jboss.com/repos/soa/trunk/qa/tests/quickstarts/performance_jbpm/src/org/jboss/soa/esb/samples/quickstart/performance_jbpm/MyAction.java

Performance results:
JBPMTest: 54.6 msgs/s
JBPMSignalTest: 52.8 msgs/s
JBPMJobExecutor: 45.3 msgs/s
JBPMThreadedJobExecutor: 61.1 msgs/s - this is the way how ESB works, so the best one


Comment 35 Martin Vecera 2008-05-28 13:11:19 UTC
The tests were executed on soa3.qa.atl2.redhat.com with Oracle10g so it is comparable to other performance tests on Hudson.


Note You need to log in before you can comment on or make changes to this bug.