Uploaded image for project: 'jBPM'
  1. jBPM
  2. JBPM-8602

stress testing jBPM on springboot with mysql db appear to require an excessive number of db connections and performs very poorly

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Critical
    • Resolution: Unresolved
    • Affects Version/s: 7.18.0.Final
    • Fix Version/s: None
    • Component/s: KieServer
    • Labels:
      None
    • Environment:

      the springboot application is created downloading the zip file from start.jbpm.org
      which currently uses springframework boot 2.1.1
      mysql 5.7.26
      MacBook Pro with Mojave 10.14.5 with adopt open jdk 8

    • Steps to Reproduce:
      Hide

      Clone https://github.com/mauriziocarioli/Capability1ProcessApp.git and run a performance test with 100 consumers, 0 delay.
      See above for the exact mysql database version used.
      Use the REST API to start the process instance:
      The endpoint is http://localhost:8090/rest/server/containers/Capability1Process-kjar/processes/com.insurance.capability1process.process/instances
      the body of the post is simply

      { "policyIsTraditionalType": true }

      Reduce the max db pool size in the application.properties to 100 and should see the database errors.

      Show
      Clone https://github.com/mauriziocarioli/Capability1ProcessApp.git and run a performance test with 100 consumers, 0 delay. See above for the exact mysql database version used. Use the REST API to start the process instance: The endpoint is http://localhost:8090/rest/server/containers/Capability1Process-kjar/processes/com.insurance.capability1process.process/instances the body of the post is simply { "policyIsTraditionalType": true } Reduce the max db pool size in the application.properties to 100 and should see the database errors.
    • Docs QE Status:
      NEW
    • QE Status:
      NEW

      Description

      I am stressing a simple bpmn process that only contains script tasks and service tasks. The only activity in the tasks is printing out some text to the console.
      I use soap ui or jmeter with 100 consumer threads, 0 test delay, 0 randomness.
      The details of the configuration are in the reproducer.

      Unless I set the max pool size of db connections to more than 300 I get database errors (see log attached). After checking the number of connections opened in the database I can verify that each process execution seem to open 3 db connections. Why?

      The overall performance is very bad with an average execution time of 5000 ms and a throughput of 20 tps after 120 seconds. The same stress test with the same database instance with the same process executed on EAP 7.2 gives 570 ms and 180 tps.

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                tsurdilovic Tihomir Surdilovic
                Reporter:
                mauriziocar Maurizio Carioli
              • Votes:
                1 Vote for this issue
                Watchers:
                11 Start watching this issue

                Dates

                • Created:
                  Updated: