| Summary: | jBPM has poor performance | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | [JBoss] JBoss Enterprise SOA Platform 4 | Reporter: | Martin Vecera <mvecera> | ||||||||
| Component: | JBPM - within SOA | Assignee: | Martin Vecera <mvecera> | ||||||||
| Status: | CLOSED NEXTRELEASE | QA Contact: | |||||||||
| Severity: | high | Docs Contact: | |||||||||
| Priority: | high | ||||||||||
| Version: | 4.2 CP01 | ||||||||||
| Target Milestone: | --- | ||||||||||
| Target Release: | 4.2 CP01 | ||||||||||
| Hardware: | Unspecified | ||||||||||
| OS: | Unspecified | ||||||||||
| URL: | http://jira.jboss.org/jira/browse/SOA-429 | ||||||||||
| Whiteboard: | |||||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||||
| Doc Text: | Story Points: | --- | |||||||||
| Clone Of: | Environment: | ||||||||||
| Last Closed: | 2008-05-28 13:11:54 UTC | Type: | Bug | ||||||||
| Regression: | --- | Mount Type: | --- | ||||||||
| Documentation: | --- | CRM: | |||||||||
| Verified Versions: | Category: | --- | |||||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||||
| Attachments: |
|
||||||||||
|
Description
Martin Vecera
2008-02-14 15:06:54 UTC
Link: Added: This issue related SOA-84 It's perf. test 2 & 4 http://intranet.corp.redhat.com/ic/intranet/SOAPerformanceTests.html How to: http://intranet.corp.redhat.com/ic/intranet/SOAPerformanceTestsHowTo.html you're lucky, for me it was 2 sec to process single message (measured visually watching server log) Martin, can you please attach a standalone test showing the performance degradation? Thanks. 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! 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). Attachment: Added: Performance2.esb Attachment: Added: Performance4.esb 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? 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. Attachment: Removed: Performance2.esb Attachment: Removed: Performance4.esb Attachment: Added: Performance2.esb Attachment: Added: Performance4.esb I have just included jBPM process deployer into jmsmock.tgz and completed the instructions on http://intranet.corp.redhat.com/ic/intranet/SOAPerformanceTestsHowTo.html i would need similar instructions in a jbpm-only environment. 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. Plain jBPM performance tests implemented as ESB service. Attachment: Added: Performance_jBPM.esb 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... 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. Link: Added: This issue is related to SOA-476 The test is not working in Hudson yet. jBPM logging is now being disabled in dbinstall tool. I'll keep you informed. 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. Attachment: Removed: Performance_jBPM.esb Attachment: Added: Performance_jBPM.esb Attachment: Removed: Performance_jBPM.esb Attachment: Added: Performance_jBPM.esb 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 The tests were executed on soa3.qa.atl2.redhat.com with Oracle10g so it is comparable to other performance tests on Hudson. |