Activiti performance showdown update

A few weeks ago, I wrote a lengthy post on the benchmark results of Activiti called ‘The Activiti Performance Showdown‘. In that post, I shouted out to the community if someone could help me with testing on a ‘real’ Oracle database system, as I had only an Oracle XE installation available.

And so it happened. I was contacted by Jure Grom, who had an Oracle installation at his disposition (and managed by a real DBA). He ran the benchmark in the same way as I did in my original article. Of course, the machines are different, so comparing them is hard. But you can definitely learn something from the patterns and the graphs which were produced.

Interestingly, the benchmark was done on two machines: one dedicated DB machine (2 six-core AMD Opteron with 32GB RAM) and one for running the processes (a quad core Intel Xeon 3.07Ghz with 4GB RAM). In my orginal benchmark, there was no network latency as both ran on the same machine. Not keeping you in suspense anymore, here are the numbers:

Activiti 5.10 – real Oracle DB by Jure Grom – default config, no history

Like I said before, it’s hard to compare with the numbers of the original article due to different machines and the network latency. The single threaded tests are slower than on my setup, but I think that is due to the network here. Which proves that even with network latency, Activiti performes very, very good!

But if you compare the numbers with my Oracle results, you can see that my suspicion was right about the crippled Oracle XE.  Once you go up to a ‘realistic’ number of threads (around 8, it seems here), the results of the real Oracle installation start to blow away the other ones. The throughput is much, much higher, while still keeping the average timings very acceptable.

Jure also extended the tests to run up to 20 threads (my tests only went to 10) and the numbers prove that a real Oracle installation nicely scales when hit with many threads at the same time. Take for example a look at the numbers for the last result, 20 threads:

PROCESS NR OF EXECUTIONS TOTAL TIME (ms) AVERAGE (ms) THROUGHPUT/SEC THROUGHPUT/HOUR
process-multi-instance-01 2500 33429 252.41 74.79 269227.32
process-usertask-01 2500 5005 31.38 499.5 1798201.8
process-usertask-02 2500 22431 145.99 111.45 401230.44
process-usertask-03 2500 9056 64.93 276.06 993816.25
process01 2500 1353 10.84 1847.75 6651884.7
process02 2500 135 1.06 18518.52 6.666666667E7
process03 2500 882 7.03 2834.47 1.020408163E7
process04 2500 1948 15.54 1283.37 4620123.2
process05 2500 134 1.06 18656.72 6.71641791E7

The throughput numbers are better than any of the MYSQL results at this high concurrency. Of course, I know, you can’t compare the machines at all. But the main conclusion of the original article remains: Activiti performs and scales very good, and is extremely capable of coping with high-concurrency scenarios.

Many, many thanks to Jure Grom for his efforts and time!

2 Comments

  1. Michael Robinson January 2, 2013

    Joram, would you be interested in performing a similar bench mark for a Windows Server/MS SQL Server setup?

    This was very informative and answered a lot of questions for us.

  2. Joram Barrez January 3, 2013

    @Michael: Yes, of course, but I do not have much knowledge around MSSQL (I dont even have a windows machine). Would you be able to help there?

Leave a Reply

Your email address will not be published. Required fields are marked *