diff options
| author | Arnaud Simon <arnaudsimon@apache.org> | 2008-07-04 11:35:56 +0000 |
|---|---|---|
| committer | Arnaud Simon <arnaudsimon@apache.org> | 2008-07-04 11:35:56 +0000 |
| commit | 9ce5773b8da8e9a5cbcfd3102c8aaca90d7cd766 (patch) | |
| tree | 3059215d5ee39b64a5a88afc4831777eaa29a912 | |
| parent | 9d563c695b7a2807dec220f87c910fee89c3f8ae (diff) | |
| download | qpid-python-9ce5773b8da8e9a5cbcfd3102c8aaca90d7cd766.tar.gz | |
QPID-1157: Added perftests project
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@674015 13f79535-47bb-0310-9956-ffa450edef68
| -rw-r--r-- | qpid/cc/config.xml | 1 | ||||
| -rw-r--r-- | qpid/cc/config/java-perftests.xml | 76 | ||||
| -rw-r--r-- | qpid/cc/scripts/runbroker.sh | 42 | ||||
| -rw-r--r-- | qpid/cc/scripts/stopbroker.sh | 31 | ||||
| -rw-r--r-- | qpid/java/perftests/build.xml | 290 |
5 files changed, 440 insertions, 0 deletions
diff --git a/qpid/cc/config.xml b/qpid/cc/config.xml index a9f81c1f4a..9db8b2754f 100644 --- a/qpid/cc/config.xml +++ b/qpid/cc/config.xml @@ -23,4 +23,5 @@ under the License. <include.projects file="./config/bdbstore-cpp-trunk.xml"/>
<include.projects file="./config/cpp-trunk-perftests.xml"/>
<include.projects file="./config/example-automation.xml"/>
+ <include.projects file="./config/java-perftests.xml"/>
</cruisecontrol>
diff --git a/qpid/cc/config/java-perftests.xml b/qpid/cc/config/java-perftests.xml new file mode 100644 index 0000000000..5b84710139 --- /dev/null +++ b/qpid/cc/config/java-perftests.xml @@ -0,0 +1,76 @@ +<!--
+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.
+-->
+
+<cruisecontrol>
+ <project name="qpid-java-perftests"
+ buildafterfailed="false">
+
+ <listeners>
+ <currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
+ </listeners>
+
+ <bootstrappers>
+ <svnbootstrapper localWorkingCopy="../java/perftests" />
+ </bootstrappers>
+
+ <modificationset quietperiod="30">
+ <buildstatus logdir="logs/qpid-cpp-trunk/"/>
+ <buildstatus logdir="logs/qpid-java-trunk/"/>
+ <svn localWorkingCopy="../java/perftests"/>
+ </modificationset>
+
+ <schedule interval="3600">
+ <composite>
+ <!-- 0.10 C++ broker -->
+ <exec timeout="1800"
+ command="/bin/bash"
+ args="../cc/scripts/runbroker.sh"
+ workingdir="../java" />
+ <ant target="all-tests"
+ uselogger="false"
+ antworkingdir="../java/perftests">
+ <jvmarg arg="-Xmx1024m"/>
+ </ant>
+ <exec timeout="1800"
+ command="/bin/bash"
+ args="../cc/scripts/stopbroker.sh"
+ workingdir="../java"/>
+ </composite>
+ </schedule>
+
+ <publishers>
+
+ <artifactspublisher dest="artifacts/${project.name}"
+ subdirectory="results"
+ dir="../java/perftests/results"/>
+<!--
+ <email subjectprefix="CC report fro ${project.name}" mailhost="localhost"
+ returnaddress="my_email"
+ buildresultsurl="http://my_host:8080/buildresults/${project.name}"
+ skipusers="false"
+ reportsuccess="fixes"
+ spamwhilebroken="true">
+ <always address="email"/>
+ <map alias="name" address="email"/>
+ </email>
+-->
+ </publishers>
+
+ </project>
+</cruisecontrol>
diff --git a/qpid/cc/scripts/runbroker.sh b/qpid/cc/scripts/runbroker.sh new file mode 100644 index 0000000000..43d9b39056 --- /dev/null +++ b/qpid/cc/scripts/runbroker.sh @@ -0,0 +1,42 @@ +#!/bin/sh +########################################################### +#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. +########################################################### + +cleanup() +{ + echo "******************************************************" + echo "Cleanup" + echo "******************************************************" + for PID in `ps aux | grep 'qpidd'|grep 'broker.log'|grep -v 'grep'|awk '{ print $2 }'` + do + kill -9 $PID + done +} + +run_broker() +{ + echo "******************************************************" + echo "Starting C++ broker" + echo "******************************************************" + echo "" + $CC_HOME/cpp/src/qpidd -t -d --auth no --no-data-dir --log-output $CC_HOME/broker.log +} + +cleanup +run_broker
\ No newline at end of file diff --git a/qpid/cc/scripts/stopbroker.sh b/qpid/cc/scripts/stopbroker.sh new file mode 100644 index 0000000000..f5839e141f --- /dev/null +++ b/qpid/cc/scripts/stopbroker.sh @@ -0,0 +1,31 @@ +#!/bin/sh +########################################################### +#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. +########################################################### + + +stop_broker() +{ + echo "******************************************************" + echo "Stopping the C++ broker" + echo "******************************************************" + echo "" + $CC_HOME/cpp/src/qpidd -q +} + +stop_broker
\ No newline at end of file diff --git a/qpid/java/perftests/build.xml b/qpid/java/perftests/build.xml index d50d062466..0288ef691e 100644 --- a/qpid/java/perftests/build.xml +++ b/qpid/java/perftests/build.xml @@ -24,4 +24,294 @@ <import file="../module.xml"/> + <property name="xms" value="-Xms256m"/> + <property name="xmx" value="-Xmx1024m"/> + <property name="test.logging.level" value="-Damqj.test.logging.level=info"/> + <property name="qpid.logging.level" value="-Damqj.logging.level=warn"/> + <property name="log4j.config" value="-Dlog4j.configuration=perftests.log4j"/> + <property name="properties" value="perftests.properties"/> + + <condition property="results" value="${result-path}/results" else="${project.root}/${module}/results"> + <isset property="result-path"/> + </condition> + + <target name="all-tests" depends="all-queue-tests,all-topic-tests"/> + + <target name="all-queue-tests" depends="Queue-Duration-Persistent,Queue-Concurrent, + Queue-Duration,Queue-Latency,Queue-Duration-Transacted,Queue-LargeMessage-Persistent"/> + + <target name="all-topic-tests" depends="Topic-Concurrent,Topic-Duration,Topic-Latency, + Topic-Duration-Transacted"/> + + <!-- Queue tests --> + + <!-- + Send 10000 (.5K) messages and measure the time for receiving 1000 messages (10 intervals) + the overall latency is also calculated (See Test * Size Throughput) + Note that "Test Throughput" is the average time for receiving 1000 messages + --> + <target name="Queue-Latency" depends="build" description="Run Queue-Latency"> + <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true"> + <classpath refid="module.test.path"/> + <jvmarg value="${xms}"/> + <jvmarg value="${xmx}"/> + <jvmarg value="${test.logging.level}"/> + <jvmarg value="${qpid.logging.level}"/> + <jvmarg value="${log4j.config}"/> + <!-- args --> + <arg value="-n Queue-Latency"/> + <arg value="-s[10000]"/> + <arg value="-t testPingLatency"/> + <arg value="-o${results}"/> + <arg value="--csv"/> + <arg value="org.apache.qpid.ping.PingLatencyTestPerf"/> + <arg value="rate=100"/> + <arg value="batchSize=1000"/> + <arg value="messageSize=512"/> + </java> + </target> + + <!-- + Measure the time required for one producer/consumer pair + for sending and receiving 10000 transient messages. + The test last for 5 minutes. + --> + <target name="Queue-Duration" depends="build" description=""> + <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true"> + <classpath refid="module.test.path"/> + <jvmarg value="${xms}"/> + <jvmarg value="${xmx}"/> + <jvmarg value="${test.logging.level}"/> + <jvmarg value="${qpid.logging.level}"/> + <jvmarg value="${log4j.config}"/> + <!-- args --> + <arg value="-d5M"/> + <arg value="-n Queue-Duration"/> + <arg value="-s[1000]"/> + <arg value="-t testAsyncPingOk"/> + <arg value="-o${results}"/> + <arg value="--csv"/> + <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/> + <arg value="messageSize=512"/> + </java> + </target> + + <!-- + Measure the time required for one producer/consumer pair + for sending and receiving 10000 0.5K persistent messages. + The test last for 5 minutes. + --> + <target name="Queue-Duration-Persistent" depends="build" description=""> + <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true"> + <classpath refid="module.test.path"/> + <jvmarg value="${xms}"/> + <jvmarg value="${xmx}"/> + <jvmarg value="${test.logging.level}"/> + <jvmarg value="${qpid.logging.level}"/> + <jvmarg value="${log4j.config}"/> + <!-- args --> + <arg value="-d5M"/> + <arg value="-n Queue-Duration-Persistent"/> + <arg value="-s[1000]"/> + <arg value="-t testAsyncPingOk"/> + <arg value="-o${results}"/> + <arg value="--csv"/> + <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/> + <arg value="persistent=true"/> + <arg value="messageSize=512"/> + </java> + </target> + + <!-- + Measure the time required for one producer/consumer pair + for sending and receiving 10000 100K persistent messages. + The test last for 5 minutes. + --> + <target name="Queue-LargeMessage-Persistent" depends="build" description=""> + <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true"> + <classpath refid="module.test.path"/> + <jvmarg value="${xms}"/> + <jvmarg value="${xmx}"/> + <jvmarg value="${test.logging.level}"/> + <jvmarg value="${qpid.logging.level}"/> + <jvmarg value="${log4j.config}"/> + <!-- args --> + <arg value="-d5M"/> + <arg value="-n Queue-LargeMessage-Persistent"/> + <arg value="-s[1000]"/> + <arg value="-t testAsyncPingOk"/> + <arg value="-o${results}"/> + <arg value="--csv"/> + <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/> + <arg value="persistent=true"/> + <arg value="messageSize=102400"/> + </java> + </target> + + <!-- + Measure the time required for one (transacted producer)/(Transacted consumer) pair + for sending and receiving 10000 (0.5K) persistent messages. + Tx batch size is 100 (consumer and producer) + The test last for 5 minutes. + --> + <target name="Queue-Duration-Transacted" depends="build" description=""> + <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true"> + <classpath refid="module.test.path"/> + <jvmarg value="${xms}"/> + <jvmarg value="${xmx}"/> + <jvmarg value="${test.logging.level}"/> + <jvmarg value="${qpid.logging.level}"/> + <jvmarg value="${log4j.config}"/> + <!-- args --> + <arg value="-d5M"/> + <arg value="-n Queue-Duration-Transacted"/> + <arg value="-s[1000]"/> + <arg value="-t testAsyncPingOk"/> + <arg value="-o${results}"/> + <arg value="--csv"/> + <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/> + <arg value="persistent=true"/> + <arg value="transacted=true"/> + <arg value="batchSize=100"/> + <arg value="consTransacted=true"/> + <arg value="commitBatchSize=100"/> + <arg value="messageSize=512"/> + </java> + </target> + + <!-- + Measure the time for four concurrent producer/receiver pairs to send and receive 1000 transient messages + --> + <target name="Queue-Concurrent" depends="build" description=""> + <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true"> + <classpath refid="module.test.path"/> + <jvmarg value="${xms}"/> + <jvmarg value="${xmx}"/> + <jvmarg value="${test.logging.level}"/> + <jvmarg value="${qpid.logging.level}"/> + <jvmarg value="${log4j.config}"/> + <!-- args --> + <arg value="-r1"/> + <arg value="-n Queue-Concurrent"/> + <arg value="-s[1000]"/> + <arg value="-c[4]"/> + <arg value="-t testAsyncPingOk"/> + <arg value="-o${results}"/> + <arg value="--csv"/> + <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/> + <arg value="messageSize=512"/> + </java> + </target> + + + <!-- Topic tests --> + + <!-- + Send 10000 (.5K) messages and measure the time for receiving 1000 messages (10 intervals) + the overall latency is also calculated (See Test * Size Throughput) + Note that "Test Throughput" is the average time for receiving 1000 messages + --> + <target name="Topic-Latency" depends="build" description="Run Queue-Latency"> + <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true"> + <classpath refid="module.test.path"/> + <jvmarg value="${xms}"/> + <jvmarg value="${xmx}"/> + <jvmarg value="${test.logging.level}"/> + <jvmarg value="${qpid.logging.level}"/> + <jvmarg value="${log4j.config}"/> + <!-- args --> + <arg value="-n Topic-Latency"/> + <arg value="-s[10000]"/> + <arg value="-t testPingLatency"/> + <arg value="-o${results}"/> + <arg value="--csv"/> + <arg value="org.apache.qpid.ping.PingLatencyTestPerf"/> + <arg value="rate=100"/> + <arg value="batchSize=1000"/> + <arg value="messageSize=512"/> + <arg value="pubsub=true"/> + </java> + </target> + + <!-- + Measure the time required for one producer/consumer pair + for sending and receiving 10000 transient messages. + The test last for 5 minutes. + --> + <target name="Topic-Duration" depends="build" description=""> + <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true"> + <classpath refid="module.test.path"/> + <jvmarg value="${xms}"/> + <jvmarg value="${xmx}"/> + <jvmarg value="${test.logging.level}"/> + <jvmarg value="${qpid.logging.level}"/> + <jvmarg value="${log4j.config}"/> + <!-- args --> + <arg value="-d5M"/> + <arg value="-n Topic-Duration"/> + <arg value="-s[1000]"/> + <arg value="-t testAsyncPingOk"/> + <arg value="-o${results}"/> + <arg value="--csv"/> + <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/> + <arg value="messageSize=512"/> + <arg value="pubsub=true"/> + </java> + </target> + + <!-- + Measure the time required for one (transacted producer)/(Transacted consumer) pair + for sending and receiving 10000 (0.5K) persistent messages. + Tx batch size is 100 (consumer and producer) + The test last for 5 minutes. + --> + <target name="Topic-Duration-Transacted" depends="build" description=""> + <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true"> + <classpath refid="module.test.path"/> + <jvmarg value="${xms}"/> + <jvmarg value="${xmx}"/> + <jvmarg value="${test.logging.level}"/> + <jvmarg value="${qpid.logging.level}"/> + <jvmarg value="${log4j.config}"/> + <!-- args --> + <arg value="-d5M"/> + <arg value="-n Topic-Duration-Transacted"/> + <arg value="-s[1000]"/> + <arg value="-t testAsyncPingOk"/> + <arg value="-o${results}"/> + <arg value="--csv"/> + <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/> + <arg value="persistent=true"/> + <arg value="transacted=true"/> + <arg value="batchSize=100"/> + <arg value="consTransacted=true"/> + <arg value="commitBatchSize=100"/> + <arg value="messageSize=512"/> + </java> + </target> + + <!-- + Measure the time for four concurrent producer/receiver pairs to send and receive 1000 transient messages + --> + <target name="Topic-Concurrent" depends="build" description=""> + <java classname="org.apache.qpid.junit.extensions.TKTestRunner" fork="true"> + <classpath refid="module.test.path"/> + <jvmarg value="${xms}"/> + <jvmarg value="${xmx}"/> + <jvmarg value="${test.logging.level}"/> + <jvmarg value="${qpid.logging.level}"/> + <jvmarg value="${log4j.config}"/> + <!-- args --> + <arg value="-r1"/> + <arg value="-n Topic-Concurrent"/> + <arg value="-s[1000]"/> + <arg value="-c[4]"/> + <arg value="-t testAsyncPingOk"/> + <arg value="-o${results}"/> + <arg value="--csv"/> + <arg value="org.apache.qpid.ping.PingAsyncTestPerf"/> + <arg value="messageSize=512"/> + </java> + </target> + </project> |
