The test suite used to create this performance profile consist of 649 classes to perform 390 test blocks with a total of 14'700 single tests. The suite is based on JUnit.
The JMS coverage of this performance profile is nearly 100%. That is, every functionality of JMS, except JMS chapter 8 (ConnectionConsumer, XA), was tested under load. In particular this was:
For clearness, recover tests (rollback, recover) are not shown in this profile.
The test suite performs all tests with small, medium, and large message sizes with BytesMessages with a few message properties for handshaking between producers and consumers. The configured message sizes for the message body are 100 bytes for small messages, 1024 bytes for medium messages, and 5120 bytes for large messages.
Each test was performed with different numbers of producers and consumers, depending on the message model used.
The tests performed with Point-to-Point are:
The tests performed with Publish/Subscribe are:
Block operations are commit, rollback, client-ack, recover. For each of this operation the block size is 10. That is,
The configured number of messages sent for each test block is 200'000 for small message tests, 150'000 for medium message tests, and 100'000 for large message tests.
Server:
Client:
Network:
SwiftMQ Router:
SwiftMQ Client:
The throughput measured and used in this performance profile is the overall throughput of the message consumers, that is, the number of messages received for the particular test block. For example, a one-to-fifty test shows the overall throughput of all 50 consumers. The measurement is in messages per second.
| Test Case | Msgs/sec |
|---|---|
| ps.nonpersistent.nontransacted.autoack.nondurable.singlepair.small | 13.781,32 |
| ps.nonpersistent.nontransacted.autoack.nondurable.singlepair.medium | 10.244,33 |
| ps.nonpersistent.nontransacted.autoack.nondurable.singlepair.large | 4.967,71 |
| ps.nonpersistent.nontransacted.autoack.nondurable.tenpairs.small | 30.895,28 |
| ps.nonpersistent.nontransacted.autoack.nondurable.tenpairs.medium | 17.969,29 |
| ps.nonpersistent.nontransacted.autoack.nondurable.tenpairs.large | 6.231,58 |
| ps.nonpersistent.nontransacted.autoack.nondurable.fiftypairs.small | 33.130,71 |
| ps.nonpersistent.nontransacted.autoack.nondurable.fiftypairs.medium | 18.690,26 |
| ps.nonpersistent.nontransacted.autoack.nondurable.fiftypairs.large | 6.582,14 |
| ps.nonpersistent.nontransacted.autoack.nondurable.onetoten.small | 64.274,79 |
| ps.nonpersistent.nontransacted.autoack.nondurable.onetoten.medium | 36.569,09 |
| ps.nonpersistent.nontransacted.autoack.nondurable.onetoten.large | 12.413,26 |
| ps.nonpersistent.nontransacted.autoack.nondurable.onetofifty.small | 113.700,97 |
| ps.nonpersistent.nontransacted.autoack.nondurable.onetofifty.medium | 52.275,01 |
| ps.nonpersistent.nontransacted.autoack.nondurable.onetofifty.large | 15.212,97 |
| ps.nonpersistent.nontransacted.clientack.nondurable.nonrecover.singlepair.small | 12.493,13 |
| ps.nonpersistent.nontransacted.clientack.nondurable.nonrecover.singlepair.medium | 9.762,76 |
| ps.nonpersistent.nontransacted.clientack.nondurable.nonrecover.singlepair.large | 4.530,22 |
| ps.nonpersistent.nontransacted.clientack.nondurable.nonrecover.tenpairs.small | 16.419,28 |
| ps.nonpersistent.nontransacted.clientack.nondurable.nonrecover.tenpairs.medium | 11.915,83 |
| ps.nonpersistent.nontransacted.clientack.nondurable.nonrecover.tenpairs.large | 4.889,66 |
| ps.nonpersistent.nontransacted.clientack.nondurable.nonrecover.fiftypairs.small | 12.167,32 |
| ps.nonpersistent.nontransacted.clientack.nondurable.nonrecover.fiftypairs.medium | 8.935,42 |
| ps.nonpersistent.nontransacted.clientack.nondurable.nonrecover.fiftypairs.large | 3.937,51 |
| ps.nonpersistent.nontransacted.clientack.nondurable.nonrecover.onetoten.small | 24.105,68 |
| ps.nonpersistent.nontransacted.clientack.nondurable.nonrecover.onetoten.medium | 18.725,19 |
| ps.nonpersistent.nontransacted.clientack.nondurable.nonrecover.onetoten.large | 8.225,44 |
| ps.nonpersistent.nontransacted.clientack.nondurable.nonrecover.onetofifty.small | 18.853,33 |
| ps.nonpersistent.nontransacted.clientack.nondurable.nonrecover.onetofifty.medium | 15.334,22 |
| ps.nonpersistent.nontransacted.clientack.nondurable.nonrecover.onetofifty.large | 6.912,95 |
| ps.nonpersistent.transacted.nondurable.commit.singlepair.small | 2.351,49 |
| ps.nonpersistent.transacted.nondurable.commit.singlepair.medium | 1.910,49 |
| ps.nonpersistent.transacted.nondurable.commit.singlepair.large | 1.446,59 |
| ps.nonpersistent.transacted.nondurable.commit.tenpairs.small | 6.719,78 |
| ps.nonpersistent.transacted.nondurable.commit.tenpairs.medium | 5.734,18 |
| ps.nonpersistent.transacted.nondurable.commit.tenpairs.large | 3.412,11 |
| ps.nonpersistent.transacted.nondurable.commit.fiftypairs.small | 6.749,71 |
| ps.nonpersistent.transacted.nondurable.commit.fiftypairs.medium | 5.382,36 |
| ps.nonpersistent.transacted.nondurable.commit.fiftypairs.large | 2.824,48 |
| ps.nonpersistent.transacted.nondurable.commit.onetoten.small | 10.776,79 |
| ps.nonpersistent.transacted.nondurable.commit.onetoten.medium | 9.629,09 |
| ps.nonpersistent.transacted.nondurable.commit.onetoten.large | 5.974,75 |
| ps.nonpersistent.transacted.nondurable.commit.onetofifty.small | 17.162,75 |
| ps.nonpersistent.transacted.nondurable.commit.onetofifty.medium | 14.434,68 |
| ps.nonpersistent.transacted.nondurable.commit.onetofifty.large | 6.935,69 |
| ps.nonpersistent.nontransacted.autoack.durable.singlepair.small | 12.491,88 |
| ps.nonpersistent.nontransacted.autoack.durable.singlepair.medium | 9.707,32 |
| ps.nonpersistent.nontransacted.autoack.durable.singlepair.large | 4.792,49 |
| ps.nonpersistent.nontransacted.autoack.durable.tenpairs.small | 27.388,26 |
| ps.nonpersistent.nontransacted.autoack.durable.tenpairs.medium | 16.492,53 |
| ps.nonpersistent.nontransacted.autoack.durable.tenpairs.large | 5.956,35 |
| ps.nonpersistent.nontransacted.autoack.durable.fiftypairs.small | 27.310,11 |
| ps.nonpersistent.nontransacted.autoack.durable.fiftypairs.medium | 16.787,31 |
| ps.nonpersistent.nontransacted.autoack.durable.fiftypairs.large | 6.264,37 |
| ps.nonpersistent.nontransacted.autoack.durable.onetoten.small | 55.884,03 |
| ps.nonpersistent.nontransacted.autoack.durable.onetoten.medium | 32.729,47 |
| ps.nonpersistent.nontransacted.autoack.durable.onetoten.large | 11.588,56 |
| ps.nonpersistent.nontransacted.autoack.durable.onetofifty.small | 67.906,18 |
| ps.nonpersistent.nontransacted.autoack.durable.onetofifty.medium | 37.921,31 |
| ps.nonpersistent.nontransacted.autoack.durable.onetofifty.large | 13.613,00 |
| ps.nonpersistent.nontransacted.clientack.durable.nonrecover.singlepair.small | 11.672,43 |
| ps.nonpersistent.nontransacted.clientack.durable.nonrecover.singlepair.medium | 8.790,82 |
| ps.nonpersistent.nontransacted.clientack.durable.nonrecover.singlepair.large | 4.315,37 |
| ps.nonpersistent.nontransacted.clientack.durable.nonrecover.tenpairs.small | 15.790,95 |
| ps.nonpersistent.nontransacted.clientack.durable.nonrecover.tenpairs.medium | 11.624,46 |
| ps.nonpersistent.nontransacted.clientack.durable.nonrecover.tenpairs.large | 4.803,03 |
| ps.nonpersistent.nontransacted.clientack.durable.nonrecover.fiftypairs.small | 11.700,38 |
| ps.nonpersistent.nontransacted.clientack.durable.nonrecover.fiftypairs.medium | 8.513,02 |
| ps.nonpersistent.nontransacted.clientack.durable.nonrecover.fiftypairs.large | 3.792,62 |
| ps.nonpersistent.nontransacted.clientack.durable.nonrecover.onetoten.small | 23.017,71 |
| ps.nonpersistent.nontransacted.clientack.durable.nonrecover.onetoten.medium | 17.792,80 |
| ps.nonpersistent.nontransacted.clientack.durable.nonrecover.onetoten.large | 7.945,15 |
| ps.nonpersistent.nontransacted.clientack.durable.nonrecover.onetofifty.small | 18.534,76 |
| ps.nonpersistent.nontransacted.clientack.durable.nonrecover.onetofifty.medium | 15.142,41 |
| ps.nonpersistent.nontransacted.clientack.durable.nonrecover.onetofifty.large | 6.947,80 |
| ps.nonpersistent.transacted.durable.commit.singlepair.small | 2.325,44 |
| ps.nonpersistent.transacted.durable.commit.singlepair.medium | 1.900,42 |
| ps.nonpersistent.transacted.durable.commit.singlepair.large | 1.434,95 |
| ps.nonpersistent.transacted.durable.commit.tenpairs.small | 6.646,26 |
| ps.nonpersistent.transacted.durable.commit.tenpairs.medium | 5.815,53 |
| ps.nonpersistent.transacted.durable.commit.tenpairs.large | 3.390,50 |
| ps.nonpersistent.transacted.durable.commit.fiftypairs.small | 6.643,80 |
| ps.nonpersistent.transacted.durable.commit.fiftypairs.medium | 5.256,31 |
| ps.nonpersistent.transacted.durable.commit.fiftypairs.large | 2.790,26 |
| ps.nonpersistent.transacted.durable.commit.onetoten.small | 10.712,51 |
| ps.nonpersistent.transacted.durable.commit.onetoten.medium | 9.637,58 |
| ps.nonpersistent.transacted.durable.commit.onetoten.large | 6.073,05 |
| ps.nonpersistent.transacted.durable.commit.onetofifty.small | 17.086,62 |
| ps.nonpersistent.transacted.durable.commit.onetofifty.medium | 14.145,45 |
| ps.nonpersistent.transacted.durable.commit.onetofifty.large | 6.823,67 |
| Test Case | Msgs/sec |
|---|---|
| ptp.nonpersistent.nontransacted.autoack.singlepair.small | 12.864,05 |
| ptp.nonpersistent.nontransacted.autoack.singlepair.medium | 9.540,62 |
| ptp.nonpersistent.nontransacted.autoack.singlepair.large | 4.653,76 |
| ptp.nonpersistent.nontransacted.autoack.tenpairs.small | 27.602,96 |
| ptp.nonpersistent.nontransacted.autoack.tenpairs.medium | 16.596,55 |
| ptp.nonpersistent.nontransacted.autoack.tenpairs.large | 5.980,11 |
| ptp.nonpersistent.nontransacted.autoack.fiftypairs.small | 28.026,18 |
| ptp.nonpersistent.nontransacted.autoack.fiftypairs.medium | 16.669,72 |
| ptp.nonpersistent.nontransacted.autoack.fiftypairs.large | 6.229,90 |
| ptp.nonpersistent.nontransacted.clientack.nonrecover.singlepair.small | 11.925,77 |
| ptp.nonpersistent.nontransacted.clientack.nonrecover.singlepair.medium | 8.973,04 |
| ptp.nonpersistent.nontransacted.clientack.nonrecover.singlepair.large | 4.316,67 |
| ptp.nonpersistent.nontransacted.clientack.nonrecover.tenpairs.small | 16.410,77 |
| ptp.nonpersistent.nontransacted.clientack.nonrecover.tenpairs.medium | 11.784,95 |
| ptp.nonpersistent.nontransacted.clientack.nonrecover.tenpairs.large | 4.793,31 |
| ptp.nonpersistent.nontransacted.clientack.nonrecover.fiftypairs.small | 12.787,80 |
| ptp.nonpersistent.nontransacted.clientack.nonrecover.fiftypairs.medium | 8.992,33 |
| ptp.nonpersistent.nontransacted.clientack.nonrecover.fiftypairs.large | 3.912,52 |
| ptp.nonpersistent.transacted.commit.singlepair.small | 2.377,56 |
| ptp.nonpersistent.transacted.commit.singlepair.medium | 1.950,63 |
| ptp.nonpersistent.transacted.commit.singlepair.large | 1.450,16 |
| ptp.nonpersistent.transacted.commit.tenpairs.small | 6.729,04 |
| ptp.nonpersistent.transacted.commit.tenpairs.medium | 5.885,14 |
| ptp.nonpersistent.transacted.commit.tenpairs.large | 3.444,70 |
| ptp.nonpersistent.transacted.commit.fiftypairs.small | 6.719,85 |
| ptp.nonpersistent.transacted.commit.fiftypairs.medium | 5.337,29 |
| ptp.nonpersistent.transacted.commit.fiftypairs.large | 2.805,26 |
| Test Case | Msgs/sec |
|---|---|
| ps.persistent.nontransacted.autoack.durable.singlepair.small | 1.594,17 |
| ps.persistent.nontransacted.autoack.durable.singlepair.medium | 1.526,04 |
| ps.persistent.nontransacted.autoack.durable.singlepair.large | 1.061,68 |
| ps.persistent.nontransacted.autoack.durable.tenpairs.small | 4.501,88 |
| ps.persistent.nontransacted.autoack.durable.tenpairs.medium | 3.994,93 |
| ps.persistent.nontransacted.autoack.durable.tenpairs.large | 2.332,63 |
| ps.persistent.nontransacted.autoack.durable.fiftypairs.small | 4.431,26 |
| ps.persistent.nontransacted.autoack.durable.fiftypairs.medium | 3.952,22 |
| ps.persistent.nontransacted.autoack.durable.fiftypairs.large | 2.348,81 |
| ps.persistent.nontransacted.autoack.durable.onetoten.small | 4.242,30 |
| ps.persistent.nontransacted.autoack.durable.onetoten.medium | 3.802,96 |
| ps.persistent.nontransacted.autoack.durable.onetoten.large | 2.376,74 |
| ps.persistent.nontransacted.autoack.durable.onetofifty.small | 5.132,67 |
| ps.persistent.nontransacted.autoack.durable.onetofifty.medium | 4.591,97 |
| ps.persistent.nontransacted.autoack.durable.onetofifty.large | 2.394,69 |
| ps.persistent.nontransacted.autoack.nondurable.singlepair.small | 2.585,78 |
| ps.persistent.nontransacted.autoack.nondurable.singlepair.medium | 2.435,88 |
| ps.persistent.nontransacted.autoack.nondurable.singlepair.large | 1.710,83 |
| ps.persistent.nontransacted.autoack.nondurable.tenpairs.small | 7.616,09 |
| ps.persistent.nontransacted.autoack.nondurable.tenpairs.medium | 6.859,56 |
| ps.persistent.nontransacted.autoack.nondurable.tenpairs.large | 4.180,15 |
| ps.persistent.nontransacted.autoack.nondurable.fiftypairs.small | 7.390,88 |
| ps.persistent.nontransacted.autoack.nondurable.fiftypairs.medium | 6.190,06 |
| ps.persistent.nontransacted.autoack.nondurable.fiftypairs.large | 3.580,68 |
| ps.persistent.nontransacted.autoack.nondurable.onetoten.small | 13.027,25 |
| ps.persistent.nontransacted.autoack.nondurable.onetoten.medium | 12.396,80 |
| ps.persistent.nontransacted.autoack.nondurable.onetoten.large | 7.769,16 |
| ps.persistent.nontransacted.autoack.nondurable.onetofifty.small | 24.438,50 |
| ps.persistent.nontransacted.autoack.nondurable.onetofifty.medium | 20.831,73 |
| ps.persistent.nontransacted.autoack.nondurable.onetofifty.large | 10.533,01 |
| ps.persistent.nontransacted.clientack.durable.nonrecover.singlepair.small | 1.470,98 |
| ps.persistent.nontransacted.clientack.durable.nonrecover.singlepair.medium | 1.359,10 |
| ps.persistent.nontransacted.clientack.durable.nonrecover.singlepair.large | 991,42 |
| ps.persistent.nontransacted.clientack.durable.nonrecover.tenpairs.small | 4.053,73 |
| ps.persistent.nontransacted.clientack.durable.nonrecover.tenpairs.medium | 3.651,75 |
| ps.persistent.nontransacted.clientack.durable.nonrecover.tenpairs.large | 2.184,31 |
| ps.persistent.nontransacted.clientack.durable.nonrecover.fiftypairs.small | 2.582,39 |
| ps.persistent.nontransacted.clientack.durable.nonrecover.fiftypairs.medium | 2.263,54 |
| ps.persistent.nontransacted.clientack.durable.nonrecover.fiftypairs.large | 958,71 |
| ps.persistent.nontransacted.clientack.durable.nonrecover.onetoten.small | 3.403,12 |
| ps.persistent.nontransacted.clientack.durable.nonrecover.onetoten.medium | 2.912,35 |
| ps.persistent.nontransacted.clientack.durable.nonrecover.onetoten.large | 2.058,73 |
| ps.persistent.nontransacted.clientack.durable.nonrecover.onetofifty.small | 4.441,27 |
| ps.persistent.nontransacted.clientack.durable.nonrecover.onetofifty.medium | 4.046,23 |
| ps.persistent.nontransacted.clientack.durable.nonrecover.onetofifty.large | 2.369,97 |
| ps.persistent.nontransacted.clientack.nondurable.nonrecover.singlepair.small | 2.333,32 |
| ps.persistent.nontransacted.clientack.nondurable.nonrecover.singlepair.medium | 2.039,51 |
| ps.persistent.nontransacted.clientack.nondurable.nonrecover.singlepair.large | 1.577,29 |
| ps.persistent.nontransacted.clientack.nondurable.nonrecover.tenpairs.small | 7.002,41 |
| ps.persistent.nontransacted.clientack.nondurable.nonrecover.tenpairs.medium | 6.439,94 |
| ps.persistent.nontransacted.clientack.nondurable.nonrecover.tenpairs.large | 3.793,68 |
| ps.persistent.nontransacted.clientack.nondurable.nonrecover.fiftypairs.small | 7.129,04 |
| ps.persistent.nontransacted.clientack.nondurable.nonrecover.fiftypairs.medium | 5.859,11 |
| ps.persistent.nontransacted.clientack.nondurable.nonrecover.fiftypairs.large | 3.061,23 |
| ps.persistent.nontransacted.clientack.nondurable.nonrecover.onetoten.small | 11.346,95 |
| ps.persistent.nontransacted.clientack.nondurable.nonrecover.onetoten.medium | 10.409,19 |
| ps.persistent.nontransacted.clientack.nondurable.nonrecover.onetoten.large | 6.559,91 |
| ps.persistent.nontransacted.clientack.nondurable.nonrecover.onetofifty.small | 17.227,18 |
| ps.persistent.nontransacted.clientack.nondurable.nonrecover.onetofifty.medium | 14.197,99 |
| ps.persistent.nontransacted.clientack.nondurable.nonrecover.onetofifty.large | 6.912,93 |
| ps.persistent.transacted.durable.commit.singlepair.small | 1.645,04 |
| ps.persistent.transacted.durable.commit.singlepair.medium | 1.429,53 |
| ps.persistent.transacted.durable.commit.singlepair.large | 1.020,41 |
| ps.persistent.transacted.durable.commit.tenpairs.small | 5.140,88 |
| ps.persistent.transacted.durable.commit.tenpairs.medium | 4.417,61 |
| ps.persistent.transacted.durable.commit.tenpairs.large | 2.391,36 |
| ps.persistent.transacted.durable.commit.fiftypairs.small | 3.368,15 |
| ps.persistent.transacted.durable.commit.fiftypairs.medium | 2.736,19 |
| ps.persistent.transacted.durable.commit.fiftypairs.large | 1.000,67 |
| ps.persistent.transacted.durable.commit.onetoten.small | 4.362,66 |
| ps.persistent.transacted.durable.commit.onetoten.medium | 3.867,36 |
| ps.persistent.transacted.durable.commit.onetoten.large | 2.339,43 |
| ps.persistent.transacted.durable.commit.onetofifty.small | 4.968,27 |
| ps.persistent.transacted.durable.commit.onetofifty.medium | 4.456,16 |
| ps.persistent.transacted.durable.commit.onetofifty.large | 2.393,29 |
| ps.persistent.transacted.nondurable.commit.singlepair.small | 2.335,56 |
| ps.persistent.transacted.nondurable.commit.singlepair.medium | 1.931,43 |
| ps.persistent.transacted.nondurable.commit.singlepair.large | 1.415,85 |
| ps.persistent.transacted.nondurable.commit.tenpairs.small | 6.739,50 |
| ps.persistent.transacted.nondurable.commit.tenpairs.medium | 5.835,94 |
| ps.persistent.transacted.nondurable.commit.tenpairs.large | 3.399,22 |
| ps.persistent.transacted.nondurable.commit.fiftypairs.small | 6.694,32 |
| ps.persistent.transacted.nondurable.commit.fiftypairs.medium | 5.376,15 |
| ps.persistent.transacted.nondurable.commit.fiftypairs.large | 2.865,31 |
| ps.persistent.transacted.nondurable.commit.onetoten.small | 10.451,61 |
| ps.persistent.transacted.nondurable.commit.onetoten.medium | 9.396,24 |
| ps.persistent.transacted.nondurable.commit.onetoten.large | 6.031,76 |
| ps.persistent.transacted.nondurable.commit.onetofifty.small | 16.476,52 |
| ps.persistent.transacted.nondurable.commit.onetofifty.medium | 13.831,09 |
| ps.persistent.transacted.nondurable.commit.onetofifty.large | 6.942,84 |
| Test Case | Msgs/sec |
|---|---|
| ptp.persistent.nontransacted.autoack.singlepair.small | 1.646,78 |
| ptp.persistent.nontransacted.autoack.singlepair.medium | 1.528,02 |
| ptp.persistent.nontransacted.autoack.singlepair.large | 1.102,10 |
| ptp.persistent.nontransacted.autoack.tenpairs.small | 4.501,11 |
| ptp.persistent.nontransacted.autoack.tenpairs.medium | 4.044,95 |
| ptp.persistent.nontransacted.autoack.tenpairs.large | 2.266,50 |
| ptp.persistent.nontransacted.autoack.fiftypairs.small | 4.524,29 |
| ptp.persistent.nontransacted.autoack.fiftypairs.medium | 4.036,05 |
| ptp.persistent.nontransacted.autoack.fiftypairs.large | 2.333,01 |
| ptp.persistent.nontransacted.clientack.nonrecover.singlepair.small | 1.472,29 |
| ptp.persistent.nontransacted.clientack.nonrecover.singlepair.medium | 1.368,01 |
| ptp.persistent.nontransacted.clientack.nonrecover.singlepair.large | 1.015,24 |
| ptp.persistent.nontransacted.clientack.nonrecover.tenpairs.small | 4.123,35 |
| ptp.persistent.nontransacted.clientack.nonrecover.tenpairs.medium | 3.710,26 |
| ptp.persistent.nontransacted.clientack.nonrecover.tenpairs.large | 2.141,47 |
| ptp.persistent.nontransacted.clientack.nonrecover.fiftypairs.small | 2.691,60 |
| ptp.persistent.nontransacted.clientack.nonrecover.fiftypairs.medium | 2.313,12 |
| ptp.persistent.nontransacted.clientack.nonrecover.fiftypairs.large | 934,02 |
| ptp.persistent.transacted.commit.singlepair.small | 1.652,20 |
| ptp.persistent.transacted.commit.singlepair.medium | 1.470,65 |
| ptp.persistent.transacted.commit.singlepair.large | 1.022,09 |
| ptp.persistent.transacted.commit.tenpairs.small | 5.270,37 |
| ptp.persistent.transacted.commit.tenpairs.medium | 4.509,28 |
| ptp.persistent.transacted.commit.tenpairs.large | 2.339,26 |
| ptp.persistent.transacted.commit.fiftypairs.small | 3.382,13 |
| ptp.persistent.transacted.commit.fiftypairs.medium | 2.770,05 |
| ptp.persistent.transacted.commit.fiftypairs.large | 1.010,80 |