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>