We are examining Flowable engine (running inside Docker in Flowable REST app) performance under heavy load of HTTP requests and without it. These requests each create new process instance in Flowable engine. It seems that performance differs dramatically in these cases. We use simple process definition with single async serviceTask which just writes a message to the log.
When the requests are sent (758 per second), Flowable can complete only 72 (191 with RabbitMQ for async jobs) process instances per second. When the requests load is finished, the performance raises up to 457 (1110 with RabbitMQ) and Flowable finishes all unfinished (and scheduled) jobs very fast.
We see that Tomcat and Async Executor use different thread pools, so they should not compete for the threads. We also understand that the server resources are limited and Tomcat requests processing use them. But is such a big difference normal? Should we tune some Java settings? Should we limit the number of Tomcat threads?
Any help would be appreciated.