At the end of 2016 I spent some time performance testing IBM MQ, Pivotal RabbitMQ and Apache ActiveMQ in a Docker environment. This project goal was similar to my earlier tests on the native OS described in this blog post, except all the servers and clients in these tests are running as Docker containers.
As usual, I am publishing all the source code on GitHub: https://github.com/romankhar/IBM-MQ-Docker-performance. The code is all bash script based and invokes Java jar file under the covers. The benchmark can run on native OS or a virtual machine or cloud based server so long as it has Docker installed. Feel free to contribute or use in your own performance project. For the time being, I am still working on build/run automation with ActiveMQ and RabbitMQ parts of the test and will publish these in the future.
To run your own MQ on Docker performance tests, all you need to do is:
- Download the project code into your server where you plan to execute performance tests. I assume that you downloaded the code into $PROJECT_HOME directory.
- Edit file $PROJECT_HOME/source/setenv.sh to set proper environment variables for your host (i.e. path to the data volume, Docker repo name, etc.).
- OPTIONAL: Edit file $PROJECT_HOME/source/mq/server/mq.sh to set MQ tuning variables to desired values (or use my settings as a starting point).
- Run $PROJECT_HOME/source/setup.sh to build generic Docker image with latest IBM MQ 9.x runtime (this only needs to be done once).
- Execute $PROJECT_HOME/source/mq/run.sh.
Depending on the number of iterations, number of servers, clients, messages and time duration of the test it may take from several minutes to several hours. The results of the benchmark are automatically compiled across all of the test runs and aggregated in the file $PROJECT_HOME/source/mq/results.log.
Happy New Year 2017!