Menu Search

12.16. Performance

The aim of this section is not to provide exact performance metrics relating to HA, as this depends heavily on the test environment, but rather showing an impact of HA on Qpid broker performance in comparison with the Non HA case.

For testing of impact of HA on a broker performance a special test script was written using Qpid performance test framework. The script opened a number of connections to the Qpid broker, created producers and consumers on separate connections, and published test messages with concurrent producers into a test queue and consumed them with concurrent consumers. The table below shows the number of producers/consumers used in the tests. The overall throughput was collected for each configuration.

Number of producers/consumers in performance tests
Test Number of producers Number of consumers
1 1 1
2 2 2
3 4 4
4 8 8
5 16 16
6 32 32
7 64 64

The test was run against the following Qpid Broker configurations

  • Non HA Broker

  • HA 2 Nodes Cluster with durability SYNC,SYNC,ALL

  • HA 2 Nodes Cluster with durability WRITE_NO_SYNC,WRITE_NO_SYNC,ALL

  • HA 2 Nodes Cluster with durability WRITE_NO_SYNC,WRITE_NO_SYNC,ALL and coalescing-sync Qpid mode

  • HA 2 Nodes Cluster with durability WRITE_NO_SYNC,NO_SYNC,ALL and coalescing-sync Qpid mode

  • HA 2 Nodes Cluster with durability NO_SYNC,NO_SYNC,ALL and coalescing-sync Qpid option

The evironment used in testing consisted of 2 servers with 4 CPU cores (2x Intel(r) Xeon(R) CPU 5150@2.66GHz), 4GB of RAM and running under OS Red Hat Enterprise Linux AS release 4 (Nahant Update 4). Network bandwidth was 1Gbit.

We ran Master node on the first server and Replica and clients(both consumers and producers) on the second server.

In non-HA case Qpid Broker was run on a first server and clients were run on a second server.

The table below contains the test results we measured on this environment for different Broker configurations.

Each result is represented by throughput value in KB/second and difference in % between HA configuration and non HA case for the same number of clients.

Performance Comparison
Test/Broker No HA SYNC, SYNC, ALL WRITE_NO_SYNC, WRITE_NO_SYNC, ALL WRITE_NO_SYNC, WRITE_NO_SYNC, ALL - coalescing-sync WRITE_NO_SYNC, NO_SYNC,ALL - coalescing-sync NO_SYNC, NO_SYNC, ALL - coalescing-sync
1 (1/1) 0.0% -61.4% 117.0% -16.02% -9.58% -25.47%
2 (2/2) 0.0% -75.43% 67.87% -66.6% -69.02% -30.43%
3 (4/4) 0.0% -84.89% 24.19% -71.02% -69.37% -43.67%
4 (8/8) 0.0% -91.17% -22.97% -82.32% -83.42% -55.5%
5 (16/16) 0.0% -91.16% -21.42% -86.6% -86.37% -46.99%
6 (32/32) 0.0% -94.83% -51.51% -92.15% -92.02% -57.59%
7 (64/64) 0.0% -94.2% -41.84% -89.55% -89.55% -50.54%

The figure below depicts the graphs for the performance test results

Figure 12.8. Test results

Test results

On using durability SYNC,SYNC,ALL (without coalescing-sync) the performance drops significantly (by 62-95%) in comparison with non HA broker.

Whilst, on using durability WRITE_NO_SYNC,WRITE_NO_SYNC,ALL (without coalescing-sync) the performance drops by only half, but with loss of durability guarantee, so is not recommended.

In order to have better performance with HA, Qpid Broker comes up with the special mode called coalescing-sync, With this mode enabled, Qpid broker batches the concurrent transaction commits and syncs transaction data into Master disk in one go. As result, the HA performance only drops by 25-60% for durability NO_SYNC,NO_SYNC,ALL and by 10-90% for WRITE_NO_SYNC,WRITE_NO_SYNC,ALL.