diff options
| author | Keith Wall <kwall@apache.org> | 2012-09-13 12:03:25 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2012-09-13 12:03:25 +0000 |
| commit | 571707cc92dbf7662a72c73dbe0fc26663ce277b (patch) | |
| tree | 474bb4bedaa29239ae29ff0dd0618b1fa5a77691 /qpid/java | |
| parent | cc07e7a7cc6fb30c405457d8ba019a4bf50aeddd (diff) | |
| download | qpid-python-571707cc92dbf7662a72c73dbe0fc26663ce277b.tar.gz | |
NO-JIRA: [Java Broker] Add performance test script to highlight performance improvement from QPID-4125
QPID-4125 improved the performance of the Java Broker for persistent transacted messages for multiple channels
on same connection.
This change adds a perf test script allowing the performance improvement to be quantified.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1384291 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
2 files changed, 137 insertions, 0 deletions
diff --git a/qpid/java/perftests/etc/chartdefs/1050-VaryingNumberOfProducerSessionsSingleConnection.chartdef b/qpid/java/perftests/etc/chartdefs/1050-VaryingNumberOfProducerSessionsSingleConnection.chartdef new file mode 100644 index 0000000000..e9dd195392 --- /dev/null +++ b/qpid/java/perftests/etc/chartdefs/1050-VaryingNumberOfProducerSessionsSingleConnection.chartdef @@ -0,0 +1,42 @@ +# +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + +chartType=XYLINE +chartTitle=Varying number of producer sessions on single connection +chartSubtitle=Persistent messages (1024b) + +xAxisTitle=Number of producer sessions +yAxisTitle=Throughput (KB/s) + +# testName contains the number of sessions +series.1.statement=SELECT testName, throughputKbPerS FROM VaryingNumberOfProducerSessionsSingleConnection WHERE participantName = 'All' +series.1.legend=Current - End-to-end throughput +series.1.dir=${csvCurrentDir} + +series.2.statement=SELECT testName, throughputKbPerS FROM VaryingNumberOfProducerSessionsSingleConnection WHERE participantName = 'All Producers' +series.2.legend=Current - Producer only throughput +series.2.dir=${csvCurrentDir} + +series.3.statement=SELECT testName, throughputKbPerS FROM VaryingNumberOfProducerSessionsSingleConnection WHERE participantName = 'All' +series.3.legend=Baseline - End-to-end throughput +series.3.dir=${csvBaselineDir} + +series.4.statement=SELECT testName, throughputKbPerS FROM VaryingNumberOfProducerSessionsSingleConnection WHERE participantName = 'All Producers' +series.4.legend=Baseline - Producer only throughput +series.4.dir=${csvBaselineDir} diff --git a/qpid/java/perftests/etc/testdefs/VaryingNumberOfProducerSessionsSingleConnection.js b/qpid/java/perftests/etc/testdefs/VaryingNumberOfProducerSessionsSingleConnection.js new file mode 100644 index 0000000000..c62a8344b1 --- /dev/null +++ b/qpid/java/perftests/etc/testdefs/VaryingNumberOfProducerSessionsSingleConnection.js @@ -0,0 +1,95 @@ +/* + * + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + * + */ +var jsonObject = { + _tests:[] +}; + +var duration = 30000; +var queueName = "direct://amq.direct//varNumOfSessions?durable='true'"; + +var numbersOfSessions = [1, 2, 5, 10, 20, 40, 80]; +var numberOfConsumingClients = 20; + +for(i=0; i < numbersOfSessions.length ; i++) +{ + var sessionNumber = numbersOfSessions[i]; + var test = { + "_name": sessionNumber, + "_queues":[ + { + "_name": queueName, + "_durable": "true" + } + ], + "_clients":[ + { + "_name": "producingClient", + "_connections":[ + { + "_name": "connection1", + "_factory": "connectionfactory", + "_sessions": QPID.times(sessionNumber, + { + "_sessionName": "session__SESSION_INDEX", + "_producers": [ + { + "_name": "Producer__SESSION_INDEX", + "_destinationName": queueName, + "_deliveryMode": 2, + "_acknowledgeMode": 0, + "_maximumDuration": duration + } + ] + }, + "__SESSION_INDEX") + } + ] + }, + ].concat(QPID.times(numberOfConsumingClients, + { + "_name": "consumingClient__CONSUMING_CLIENT_INDEX", + "_connections":[ + { + "_name": "client__CONSUMING_CLIENT_INDEXconnection1", + "_factory": "connectionfactory", + "_sessions": + [ + { + "_sessionName": "client__CONSUMING_CLIENT_INDEXsession1", + "_consumers": [ + { + "_name": "client__CONSUMING_CLIENT_INDEXConsumer1Session1", + "_destinationName": queueName, + "_acknowledgeMode": 1, + "_maximumDuration": duration + } + ] + } + ] + } + ] + }, + "__CONSUMING_CLIENT_INDEX")) + }; + + jsonObject._tests= jsonObject._tests.concat(test); +} + |
