You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ar...@apache.org on 2008/07/04 13:35:56 UTC
svn commit: r674015 - in /incubator/qpid/trunk/qpid: cc/config.xml
cc/config/java-perftests.xml cc/scripts/runbroker.sh
cc/scripts/stopbroker.sh java/perftests/build.xml
Author: arnaudsimon
Date: Fri Jul 4 04:35:56 2008
New Revision: 674015
URL: http://svn.apache.org/viewvc?rev=674015&view=rev
Log:
QPID-1157: Added perftests project
Added:
incubator/qpid/trunk/qpid/cc/config/java-perftests.xml
incubator/qpid/trunk/qpid/cc/scripts/runbroker.sh
incubator/qpid/trunk/qpid/cc/scripts/stopbroker.sh
Modified:
incubator/qpid/trunk/qpid/cc/config.xml
incubator/qpid/trunk/qpid/java/perftests/build.xml
Modified: incubator/qpid/trunk/qpid/cc/config.xml
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cc/config.xml?rev=674015&r1=674014&r2=674015&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cc/config.xml (original)
+++ incubator/qpid/trunk/qpid/cc/config.xml Fri Jul 4 04:35:56 2008
@@ -23,4 +23,5 @@
<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>
Added: incubator/qpid/trunk/qpid/cc/config/java-perftests.xml
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cc/config/java-perftests.xml?rev=674015&view=auto
==============================================================================
--- incubator/qpid/trunk/qpid/cc/config/java-perftests.xml (added)
+++ incubator/qpid/trunk/qpid/cc/config/java-perftests.xml Fri Jul 4 04:35:56 2008
@@ -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>
Added: incubator/qpid/trunk/qpid/cc/scripts/runbroker.sh
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cc/scripts/runbroker.sh?rev=674015&view=auto
==============================================================================
--- incubator/qpid/trunk/qpid/cc/scripts/runbroker.sh (added)
+++ incubator/qpid/trunk/qpid/cc/scripts/runbroker.sh Fri Jul 4 04:35:56 2008
@@ -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
Added: incubator/qpid/trunk/qpid/cc/scripts/stopbroker.sh
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cc/scripts/stopbroker.sh?rev=674015&view=auto
==============================================================================
--- incubator/qpid/trunk/qpid/cc/scripts/stopbroker.sh (added)
+++ incubator/qpid/trunk/qpid/cc/scripts/stopbroker.sh Fri Jul 4 04:35:56 2008
@@ -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
Modified: incubator/qpid/trunk/qpid/java/perftests/build.xml
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/java/perftests/build.xml?rev=674015&r1=674014&r2=674015&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/java/perftests/build.xml (original)
+++ incubator/qpid/trunk/qpid/java/perftests/build.xml Fri Jul 4 04:35:56 2008
@@ -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>