diff options
| author | Keith Wall <kwall@apache.org> | 2012-07-05 14:56:45 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2012-07-05 14:56:45 +0000 |
| commit | ed30bcde2a746670bb334397698e47ca085c4df4 (patch) | |
| tree | 12a1db4de8416e81935897b6c729889e566f6c90 /java/perftests/etc | |
| parent | e4b7a04ed3bf95c789d43acf43903653cee9dde8 (diff) | |
| download | qpid-python-ed30bcde2a746670bb334397698e47ca085c4df4.tar.gz | |
QPID-4110 added topic support to performance tests.
Specifically:
- Added support for creating and tearing down durable subscriptions
- Improved IterationValueTest so that we test the format for boolean properties (such as durableSubscription)
- Added test and chart definitions
Applied patch from Philip Harvey <phil@philharveyonline.com>
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1357650 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/perftests/etc')
8 files changed, 382 insertions, 0 deletions
diff --git a/java/perftests/etc/chartdefs/1500-Topic-NumberOfConsumers.chartdef b/java/perftests/etc/chartdefs/1500-Topic-NumberOfConsumers.chartdef new file mode 100644 index 0000000000..05bfd73b3b --- /dev/null +++ b/java/perftests/etc/chartdefs/1500-Topic-NumberOfConsumers.chartdef @@ -0,0 +1,29 @@ +# +# 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=LINE +chartTitle=Number of topic consumers +chartSubtitle=Transient 1KB messages +xAxisTitle=Numer of consumers +yAxisTitle=Throughput (KB/s) + +series.1.statement=SELECT testName, throughputKbPerS FROM Topic-NumberOfConsumers WHERE participantName = 'All' +series.1.legend=Current +series.1.dir=${csvCurrentDir} + diff --git a/java/perftests/etc/chartdefs/1501-Topic-NumberOfTopics.chartdef b/java/perftests/etc/chartdefs/1501-Topic-NumberOfTopics.chartdef new file mode 100644 index 0000000000..3d9a04b5b6 --- /dev/null +++ b/java/perftests/etc/chartdefs/1501-Topic-NumberOfTopics.chartdef @@ -0,0 +1,28 @@ +# +# 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=LINE +chartTitle=Number of topics +chartSubtitle=Transient 1KB messages +xAxisTitle=Numer of topics +yAxisTitle=Throughput (KB/s) + +series.1.statement=SELECT testName, throughputKbPerS FROM Topic-NumberOfTopics WHERE participantName = 'All' +series.1.legend=Current +series.1.dir=${csvCurrentDir} diff --git a/java/perftests/etc/chartdefs/1502-Topic-Persistence.chartdef b/java/perftests/etc/chartdefs/1502-Topic-Persistence.chartdef new file mode 100644 index 0000000000..aa449f48c9 --- /dev/null +++ b/java/perftests/etc/chartdefs/1502-Topic-Persistence.chartdef @@ -0,0 +1,28 @@ +# +# 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=BAR +chartTitle=Topic transient/durable subscriptions +chartSubtitle=1KB messages +xAxisTitle=Durable subscription +yAxisTitle=Throughput (KB/s) + +series.1.statement=SELECT isDurableSubscription, throughputKbPerS FROM Topic-Persistence WHERE participantName = 'All Consumers' +series.1.legend=Current +series.1.dir=${csvCurrentDir} diff --git a/java/perftests/etc/chartdefs/1503-Topic-AckModes.chartdef b/java/perftests/etc/chartdefs/1503-Topic-AckModes.chartdef new file mode 100644 index 0000000000..6a7e6016f1 --- /dev/null +++ b/java/perftests/etc/chartdefs/1503-Topic-AckModes.chartdef @@ -0,0 +1,28 @@ +# +# 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=BAR +chartTitle=Topic acknowledge modes +chartSubtitle=Transient 1KB messages +xAxisTitle=Ack Mode +yAxisTitle=Throughput (KB/s) + +series.1.statement=SELECT acknowledgeMode, throughputKbPerS FROM Topic-AckModes WHERE participantName = 'All' +series.1.legend=Current +series.1.dir=${csvCurrentDir} diff --git a/java/perftests/etc/testdefs/Topic-AckModes.js b/java/perftests/etc/testdefs/Topic-AckModes.js new file mode 100644 index 0000000000..0ad519aa50 --- /dev/null +++ b/java/perftests/etc/testdefs/Topic-AckModes.js @@ -0,0 +1,67 @@ +var duration = 30000; +var topicName = "topic://amq.topic/?routingkey='testTopic'"; + +var jsonObject = { + _tests: [ + { + "_name": "Topic ack modes", + "_iterations": [ + { + "_acknowledgeMode": 1 + }, + { + "_acknowledgeMode": 2 + }, + { + "_acknowledgeMode": 3 + } + ], + "_clients": [ + { + "_name": "producingClient", + "_connections":[ + { + "_name": "connection1", + "_factory": "connectionfactory", + "_sessions": [ + { + "_sessionName": "session1", + "_producers": [ + { + "_name": "Producer", + "_destinationName": topicName, + "_maximumDuration": duration + } + ] + } + ] + } + ] + } + ] + .concat(QPID.times(10, + { + "_name": "consumingClient-__INDEX", + "_connections":[ + { + "_name": "connection1", + "_factory": "connectionfactory", + "_sessions": [ + { + "_sessionName": "session1", + "_consumers": [ + { + "_name": "Consumer-__INDEX", + "_destinationName": topicName, + "_maximumDuration": duration, + } + ] + } + ] + } + ] + }, + "__INDEX")) + }] +}; + diff --git a/java/perftests/etc/testdefs/Topic-NumberOfConsumers.js b/java/perftests/etc/testdefs/Topic-NumberOfConsumers.js new file mode 100644 index 0000000000..9351987115 --- /dev/null +++ b/java/perftests/etc/testdefs/Topic-NumberOfConsumers.js @@ -0,0 +1,64 @@ +var jsonObject = { + _tests:[] +}; + +var duration = 30000; +var topicName = "topic://amq.topic/?routingkey='testTopic.1'"; + +var numbersOfConsumers = [1, 10, 50, 100]; + +for(i=0; i < numbersOfConsumers.length ; i++) +{ + var numberOfConsumers = numbersOfConsumers[i]; + var test = { + "_name": numberOfConsumers, + "_clients":[ + { + "_name": "producingClient", + "_connections":[ + { + "_name": "connection1", + "_factory": "connectionfactory", + "_sessions": [ + { + "_sessionName": "session1", + "_producers": [ + { + "_name": "Producer1", + "_destinationName": topicName, + "_maximumDuration": duration + } + ] + } + ] + } + ] + } + ].concat(QPID.times(numberOfConsumers, + { + "_name": "consumingClient-__INDEX", + "_connections":[ + { + "_name": "connection1", + "_factory": "connectionfactory", + "_sessions": [ + { + "_sessionName": "session1", + "_consumers": [ + { + "_name": "Consumer-__INDEX", + "_destinationName": topicName, + "_maximumDuration": duration + } + ] + } + ] + } + ] + }, + "__INDEX")) + }; + + jsonObject._tests= jsonObject._tests.concat(test); +} + diff --git a/java/perftests/etc/testdefs/Topic-NumberOfTopics.js b/java/perftests/etc/testdefs/Topic-NumberOfTopics.js new file mode 100644 index 0000000000..227650a16d --- /dev/null +++ b/java/perftests/etc/testdefs/Topic-NumberOfTopics.js @@ -0,0 +1,69 @@ +var jsonObject = { + _tests:[] +}; + +var duration = 30000; +var topicName = "topic://amq.topic/?routingkey='testTopic.__INDEX'"; + +var numbersOfTopics = [1, 10, 50, 100]; + +// Each test has n pairs of producers and consumers, each with a different topic + +for(i=0; i < numbersOfTopics.length ; i++) +{ + var numberOfTopics = numbersOfTopics[i]; + var test = { + "_name": numberOfTopics, + "_clients": + QPID.times(numberOfTopics, + { + "_name": "producingClient-__INDEX", + "_connections":[ + { + "_name": "connection1", + "_factory": "connectionfactory", + "_sessions": [ + { + "_sessionName": "session1", + "_producers": [ + { + "_name": "Producer-__INDEX", + "_destinationName": topicName, + "_maximumDuration": duration + } + ] + } + ] + } + ] + }, + "__INDEX") + .concat( + QPID.times(numberOfTopics, + { + "_name": "consumingClient-__INDEX", + "_connections":[ + { + "_name": "connection1", + "_factory": "connectionfactory", + "_sessions": [ + { + "_sessionName": "session1", + "_consumers": [ + { + "_name": "Consumer-__INDEX", + "_destinationName": topicName, + "_maximumDuration": duration + } + ] + } + ] + } + ] + }, + "__INDEX")) + }; + + jsonObject._tests= jsonObject._tests.concat(test); +} + diff --git a/java/perftests/etc/testdefs/Topic-Persistence.js b/java/perftests/etc/testdefs/Topic-Persistence.js new file mode 100644 index 0000000000..d843d37861 --- /dev/null +++ b/java/perftests/etc/testdefs/Topic-Persistence.js @@ -0,0 +1,69 @@ +var duration = 30000; +var topicName = "topic://amq.topic/?routingkey='testTopic'"; + +var jsonObject = { + _tests: [ + { + "_name": "Topic persistence", + "_iterations": [ + // note that we use _durableSubscription (the JaveBeans property name) + // rather than _isDurableSubscription (the field name) + { + "_deliveryMode": 1, + "_durableSubscription": false + }, + { + "_deliveryMode": 2, + "_durableSubscription": true + } + ], + "_clients": [ + { + "_name": "producingClient", + "_connections":[ + { + "_name": "connection1", + "_factory": "connectionfactory", + "_sessions": [ + { + "_sessionName": "session1", + "_producers": [ + { + "_name": "Producer", + "_destinationName": topicName, + "_maximumDuration": duration, + } + ] + } + ] + } + ] + } + ] + .concat(QPID.times(10, + { + "_name": "consumingClient-__INDEX", + "_connections":[ + { + "_name": "connection1", + "_factory": "connectionfactory", + "_sessions": [ + { + "_sessionName": "session1", + "_consumers": [ + { + "_name": "Consumer-__INDEX", + "_destinationName": topicName, + "_isTopic": true, + "_maximumDuration": duration, + } + ] + } + ] + } + ] + }, + "__INDEX")) + }] +}; + |
