From b4dcf79489661a2713c702b16ec8e9acc45e7d04 Mon Sep 17 00:00:00 2001 From: Jonathan Robie Date: Wed, 23 Jun 2010 13:44:50 +0000 Subject: Changed README to README.txt throughout the project for consistency. Removed gentools/README.txt, which described Velocity. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@957201 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/java/management/client/README | 42 ------ qpid/java/management/client/README.txt | 42 ++++++ qpid/java/management/client/src/example/README | 69 ---------- qpid/java/management/client/src/example/README.txt | 69 ++++++++++ qpid/java/management/tools/qpid-cli/README | 64 --------- qpid/java/management/tools/qpid-cli/README.txt | 64 +++++++++ qpid/java/resources/README | 40 ------ qpid/java/resources/README.txt | 40 ++++++ qpid/java/testkit/README | 6 - qpid/java/testkit/README.txt | 6 + qpid/java/tools/README | 153 --------------------- qpid/java/tools/README.txt | 153 +++++++++++++++++++++ 12 files changed, 374 insertions(+), 374 deletions(-) delete mode 100644 qpid/java/management/client/README create mode 100644 qpid/java/management/client/README.txt delete mode 100644 qpid/java/management/client/src/example/README create mode 100644 qpid/java/management/client/src/example/README.txt delete mode 100644 qpid/java/management/tools/qpid-cli/README create mode 100644 qpid/java/management/tools/qpid-cli/README.txt delete mode 100644 qpid/java/resources/README create mode 100644 qpid/java/resources/README.txt delete mode 100644 qpid/java/testkit/README create mode 100644 qpid/java/testkit/README.txt delete mode 100644 qpid/java/tools/README create mode 100644 qpid/java/tools/README.txt (limited to 'qpid/java') diff --git a/qpid/java/management/client/README b/qpid/java/management/client/README deleted file mode 100644 index 34a48f1f50..0000000000 --- a/qpid/java/management/client/README +++ /dev/null @@ -1,42 +0,0 @@ -QMan - Qpid JMX & WS-DM Management Bridge ---------------------------------------------------------- - -Documentation --------------- -All of our user documentation for QMan module can be accessed on our wiki at: - -http://cwiki.apache.org/qpid/qman-qpid-management-bridge.html - -This includes a Getting Started and User Guide as well as detailed developer documentation. -However, here's a VERY quick guide to running QMan, once you have installed it somewhere ! - -Running ------------------- - -Once you installed QMan, under the root folder you should have the following structure - -- bin (folder) : contains startup & shutdown scripts; -- app (folder) : contains the web application module; -- etc (folder) : contains configuration files; -- examples (folder) : contains examples (and a nested README as well) -- lib (folder) : contains dependency libraries; -- log (folder) : this is the default log folder. - -To run QMan, - -1) edit the $QMAN_HOME/etc/qman-config.xml file and configure broker connection data (host,port, username, etc...) -2) under the $QMAN_HOME/bin directory run : - -> ./qman-wsdm-start.sh - -now, under $QMAN_HOME/log directory you should see two files : - -1) server.log : contains web server log messages; -2) qman.log : contains qman log messages; - -Administration ------------------------ - -After QMan has been started successfully you can browse its administration console pointing your browser to : - -http://:/qman/admin.jsp \ No newline at end of file diff --git a/qpid/java/management/client/README.txt b/qpid/java/management/client/README.txt new file mode 100644 index 0000000000..34a48f1f50 --- /dev/null +++ b/qpid/java/management/client/README.txt @@ -0,0 +1,42 @@ +QMan - Qpid JMX & WS-DM Management Bridge +--------------------------------------------------------- + +Documentation +-------------- +All of our user documentation for QMan module can be accessed on our wiki at: + +http://cwiki.apache.org/qpid/qman-qpid-management-bridge.html + +This includes a Getting Started and User Guide as well as detailed developer documentation. +However, here's a VERY quick guide to running QMan, once you have installed it somewhere ! + +Running +------------------ + +Once you installed QMan, under the root folder you should have the following structure + +- bin (folder) : contains startup & shutdown scripts; +- app (folder) : contains the web application module; +- etc (folder) : contains configuration files; +- examples (folder) : contains examples (and a nested README as well) +- lib (folder) : contains dependency libraries; +- log (folder) : this is the default log folder. + +To run QMan, + +1) edit the $QMAN_HOME/etc/qman-config.xml file and configure broker connection data (host,port, username, etc...) +2) under the $QMAN_HOME/bin directory run : + +> ./qman-wsdm-start.sh + +now, under $QMAN_HOME/log directory you should see two files : + +1) server.log : contains web server log messages; +2) qman.log : contains qman log messages; + +Administration +----------------------- + +After QMan has been started successfully you can browse its administration console pointing your browser to : + +http://:/qman/admin.jsp \ No newline at end of file diff --git a/qpid/java/management/client/src/example/README b/qpid/java/management/client/src/example/README deleted file mode 100644 index 5365a416e5..0000000000 --- a/qpid/java/management/client/src/example/README +++ /dev/null @@ -1,69 +0,0 @@ -*** QMan WS-DM examples *** - -1) DESCRIPTION -This set of examples shows QMan WS-DM interface capabilities. -Each example is articulated in the following way. -First the name of the example class with a brief description about that is printed out. For example : - - GetWSDLMetadataExample -------------------------------------------------------------------- - -This example shows the usage of WS-DM -GetResourcePropertyRequest / Response on a -Group service. -The target resource is the WS-DM Adapter itself -and the requested property is "ws-rp:Entry". -WS-DM Adapter is a special WS-Resource (is a Group) -that acts as the main entry point for retrieving -all other managed resources. -So clients that want to deal with QMan WS-Resources -must first get resource identifiers sending -a GetResourcePropertyRequest to WS-DM Adapter -with "ws-rp:Entry" as target target property. - -------------------------------------------------------------------- - -Type enter to proceed. - -When you're ready type enter to proceed. Now the example runs and all the exchanged -SOAP messages are printed out on the screen. -If you want, we shipped (under sample_messages folder) several files containing those messages. - -A general note concerning examples...they are all written using java language so what you see is the -"java" usage of WS-DM client API. -The most important thing that you should keep in mind is that what is expected (on QMan side) is a SOAP WS-DM -compliant message so on top of that you don't need to use those java API but feel free to produce those messages -in your preferred way (by hand or using another programming language). - -Another thing : the examples contain a lot of code duplication because each of them is took as independent as possible. -The general idea is that you open an example source file and in the executeExample(...) method you should have a quick -idea of how things are working. -Also, as mentioned before, we provided, under the sample_messages folder, the messages that are part of each example conversation. -Remember : these messages are important, not the way / language you use to produce them. - -2) HOW TO RUN - -2.1) Java -You need JDK 1.5 or higher in order to run and / or compile the examples. - -2.2) Dependencies -You need to set / update the CLASSPATH environment variable with libraries found under $QMAN_HOME/app/qman/WEB-INF/lib. -After that you should be able to run one the shipped examples: - -> java org.apache.qpid.management.example.GetMultipleResourcePropertiesExample -> java org.apache.qpid.management.example.GetQManResourceMembersExample -> java org.apache.qpid.management.example.GetResourceMetadataDescriptorExample -> java org.apache.qpid.management.example.GetResourcePropertyDocumentExample -> java org.apache.qpid.management.example.GetResourcePropertyExample -> java org.apache.qpid.management.example.GetWSDLMetadataExample -> java org.apache.qpid.management.example.SetResourcePropertyExample - -Where - is the host (ip or hostname) where QMan is running; - is the port number where QMan is running; - -2.3) Qpid -You must have a running C++ broker with management enabled. - -2.4) QMan -You must have QMan WS-DM up, running and connected with the broker above. \ No newline at end of file diff --git a/qpid/java/management/client/src/example/README.txt b/qpid/java/management/client/src/example/README.txt new file mode 100644 index 0000000000..5365a416e5 --- /dev/null +++ b/qpid/java/management/client/src/example/README.txt @@ -0,0 +1,69 @@ +*** QMan WS-DM examples *** + +1) DESCRIPTION +This set of examples shows QMan WS-DM interface capabilities. +Each example is articulated in the following way. +First the name of the example class with a brief description about that is printed out. For example : + + GetWSDLMetadataExample +------------------------------------------------------------------- + +This example shows the usage of WS-DM +GetResourcePropertyRequest / Response on a +Group service. +The target resource is the WS-DM Adapter itself +and the requested property is "ws-rp:Entry". +WS-DM Adapter is a special WS-Resource (is a Group) +that acts as the main entry point for retrieving +all other managed resources. +So clients that want to deal with QMan WS-Resources +must first get resource identifiers sending +a GetResourcePropertyRequest to WS-DM Adapter +with "ws-rp:Entry" as target target property. + +------------------------------------------------------------------- + +Type enter to proceed. + +When you're ready type enter to proceed. Now the example runs and all the exchanged +SOAP messages are printed out on the screen. +If you want, we shipped (under sample_messages folder) several files containing those messages. + +A general note concerning examples...they are all written using java language so what you see is the +"java" usage of WS-DM client API. +The most important thing that you should keep in mind is that what is expected (on QMan side) is a SOAP WS-DM +compliant message so on top of that you don't need to use those java API but feel free to produce those messages +in your preferred way (by hand or using another programming language). + +Another thing : the examples contain a lot of code duplication because each of them is took as independent as possible. +The general idea is that you open an example source file and in the executeExample(...) method you should have a quick +idea of how things are working. +Also, as mentioned before, we provided, under the sample_messages folder, the messages that are part of each example conversation. +Remember : these messages are important, not the way / language you use to produce them. + +2) HOW TO RUN + +2.1) Java +You need JDK 1.5 or higher in order to run and / or compile the examples. + +2.2) Dependencies +You need to set / update the CLASSPATH environment variable with libraries found under $QMAN_HOME/app/qman/WEB-INF/lib. +After that you should be able to run one the shipped examples: + +> java org.apache.qpid.management.example.GetMultipleResourcePropertiesExample +> java org.apache.qpid.management.example.GetQManResourceMembersExample +> java org.apache.qpid.management.example.GetResourceMetadataDescriptorExample +> java org.apache.qpid.management.example.GetResourcePropertyDocumentExample +> java org.apache.qpid.management.example.GetResourcePropertyExample +> java org.apache.qpid.management.example.GetWSDLMetadataExample +> java org.apache.qpid.management.example.SetResourcePropertyExample + +Where + is the host (ip or hostname) where QMan is running; + is the port number where QMan is running; + +2.3) Qpid +You must have a running C++ broker with management enabled. + +2.4) QMan +You must have QMan WS-DM up, running and connected with the broker above. \ No newline at end of file diff --git a/qpid/java/management/tools/qpid-cli/README b/qpid/java/management/tools/qpid-cli/README deleted file mode 100644 index 6db439aad0..0000000000 --- a/qpid/java/management/tools/qpid-cli/README +++ /dev/null @@ -1,64 +0,0 @@ -README -n====== - -INSTALL -======= - source - ====== - 1.Set the environment variable QPID_HOME to the root directory of the repository or the release. - - 2.Run these command to build the source - - ant compile OR run the ant build in the parent directory(main ant script) - - 3.To launch the CLI run the script in bin folder with appropriate parameters. - - ex: - - Linux $QPID_HOME/bin/qpid-cli -h 10.8.100.122 -p 8334 - Windows %QPID_HOME%/bin/qpid-cli.bat -h 10.8.100.122 -p 8334 - - -h hostname (default localhost) - -p broker port (default 8999) - - binary - ====== - 1.Set the environment variable QPID_HOME to the root directory of the repository or the release. - - 2.To launch the CLI run the script in bin folder with appropriate parameters. - - ex: - - Linux $QPID_HOME/bin/qpid-cli -h 10.8.100.122 -p 8334 - Windows %QPID_HOME%/bin/qpid-cli.bat -h 10.8.100.122 -p 8334 - - -h hostname (default localhost) - -p broker port (default 8999) - - 3. No test cases are included in the binary version. - -TESTING -======= - -1.Test source is located in the test directory.If you want to run the tests please start the -Qpid java broker and run following ant targets. - - ant compile-tests This compile all the test sources - ant test This runs all the test cases -2.If you want to test with a remote broker please use the source release and change the constants in ConnectionConstants.java -class.(Default values are BROKER_HOSTNAME="localhost" BROKER_PORT="8999") - -For more informations please visit the project home page. - - - - - - - - - - - - - diff --git a/qpid/java/management/tools/qpid-cli/README.txt b/qpid/java/management/tools/qpid-cli/README.txt new file mode 100644 index 0000000000..6db439aad0 --- /dev/null +++ b/qpid/java/management/tools/qpid-cli/README.txt @@ -0,0 +1,64 @@ +README +n====== + +INSTALL +======= + source + ====== + 1.Set the environment variable QPID_HOME to the root directory of the repository or the release. + + 2.Run these command to build the source + + ant compile OR run the ant build in the parent directory(main ant script) + + 3.To launch the CLI run the script in bin folder with appropriate parameters. + + ex: + + Linux $QPID_HOME/bin/qpid-cli -h 10.8.100.122 -p 8334 + Windows %QPID_HOME%/bin/qpid-cli.bat -h 10.8.100.122 -p 8334 + + -h hostname (default localhost) + -p broker port (default 8999) + + binary + ====== + 1.Set the environment variable QPID_HOME to the root directory of the repository or the release. + + 2.To launch the CLI run the script in bin folder with appropriate parameters. + + ex: + + Linux $QPID_HOME/bin/qpid-cli -h 10.8.100.122 -p 8334 + Windows %QPID_HOME%/bin/qpid-cli.bat -h 10.8.100.122 -p 8334 + + -h hostname (default localhost) + -p broker port (default 8999) + + 3. No test cases are included in the binary version. + +TESTING +======= + +1.Test source is located in the test directory.If you want to run the tests please start the +Qpid java broker and run following ant targets. + + ant compile-tests This compile all the test sources + ant test This runs all the test cases +2.If you want to test with a remote broker please use the source release and change the constants in ConnectionConstants.java +class.(Default values are BROKER_HOSTNAME="localhost" BROKER_PORT="8999") + +For more informations please visit the project home page. + + + + + + + + + + + + + diff --git a/qpid/java/resources/README b/qpid/java/resources/README deleted file mode 100644 index 1d52d487fb..0000000000 --- a/qpid/java/resources/README +++ /dev/null @@ -1,40 +0,0 @@ - -Documentation --------------- -All of our user documentation for the Qpid Java components can be accessed on our wiki at: - -http://cwiki.apache.org/confluence/display/qpid/Qpid+Java+Documentation - -This includes a Getting Started Guide and FAQ as well as detailed developer documentation. -However, here's a VERY quick guide to running the installed Qpid broker, once you have installed it somewhere ! - - -Running the Broker ------------------- - -To run the broker, set the QPID_HOME environment variable to -distribution directory and add $QPID_HOME/bin to your PATH. Then run -the qpid-server shell script or qpid-server.bat batch file to start -the broker. By default, the broker will use $QPID_HOME/etc to find -the configuration files. You can supply a custom configuration using -the -c argument. - -For example: - -qpid-server -c ~/etc/config.xml - -You can get a list of all command line arguments by using the -h argument. - - -Developing ----------- - -In order to build Qpid you need Ant 1.6.5. Use ant -p to list the -available targets. The default ant target, build, creates a working -development-mode distribution in the build directory. To run the -scripts in build/bin set QPID_HOME to the build directory and put -${QPID_HOME}/bin on your PATH. The scripts in that directory include -the standard ones in the distribution and a number of testing scripts. - - - diff --git a/qpid/java/resources/README.txt b/qpid/java/resources/README.txt new file mode 100644 index 0000000000..1d52d487fb --- /dev/null +++ b/qpid/java/resources/README.txt @@ -0,0 +1,40 @@ + +Documentation +-------------- +All of our user documentation for the Qpid Java components can be accessed on our wiki at: + +http://cwiki.apache.org/confluence/display/qpid/Qpid+Java+Documentation + +This includes a Getting Started Guide and FAQ as well as detailed developer documentation. +However, here's a VERY quick guide to running the installed Qpid broker, once you have installed it somewhere ! + + +Running the Broker +------------------ + +To run the broker, set the QPID_HOME environment variable to +distribution directory and add $QPID_HOME/bin to your PATH. Then run +the qpid-server shell script or qpid-server.bat batch file to start +the broker. By default, the broker will use $QPID_HOME/etc to find +the configuration files. You can supply a custom configuration using +the -c argument. + +For example: + +qpid-server -c ~/etc/config.xml + +You can get a list of all command line arguments by using the -h argument. + + +Developing +---------- + +In order to build Qpid you need Ant 1.6.5. Use ant -p to list the +available targets. The default ant target, build, creates a working +development-mode distribution in the build directory. To run the +scripts in build/bin set QPID_HOME to the build directory and put +${QPID_HOME}/bin on your PATH. The scripts in that directory include +the standard ones in the distribution and a number of testing scripts. + + + diff --git a/qpid/java/testkit/README b/qpid/java/testkit/README deleted file mode 100644 index df7996f471..0000000000 --- a/qpid/java/testkit/README +++ /dev/null @@ -1,6 +0,0 @@ -Introduction -============ - -The Test kit for the JMS client is based on a multi-broker python framework. -So far it could only be used with the c++ broker. - diff --git a/qpid/java/testkit/README.txt b/qpid/java/testkit/README.txt new file mode 100644 index 0000000000..df7996f471 --- /dev/null +++ b/qpid/java/testkit/README.txt @@ -0,0 +1,6 @@ +Introduction +============ + +The Test kit for the JMS client is based on a multi-broker python framework. +So far it could only be used with the c++ broker. + diff --git a/qpid/java/tools/README b/qpid/java/tools/README deleted file mode 100644 index fdde734027..0000000000 --- a/qpid/java/tools/README +++ /dev/null @@ -1,153 +0,0 @@ -Introduction -============ - -The Test kit for the java client consists of 2 components. - -1) A Simple Perf Test that can be used to, - a) Run a predefined perf report consisting of 8 use cases (see below) - b) Run a producer and a consumer with a number of different options - -2) Soak tests that can be run for longer durations (hours or days). - -I am planning to add some stress tests to this module as well. -Please note this is not a replacement for the existing perf/systests etc. -But rather a small test kit thats focused on providing a packaged set of tests that can be quickly deployed on an environment to do quick smoke testing or easily setup a soak test. - -Table of Contents -================= -1. Perf Kit -2. Soak Kit -3. Perf Test use cases -4. Soak Test use cases -5. Running the sample perf test report -6. Running the sample soak test report - -1.0 Perf Kit ------------- -1.1 The perf kit can be packaged as an RPM or a tar file and deploy on a target environment and run the perf report. -Or else a perf report can be automated to run every day or so an record numbers to catch perf regressions. - -1.2 It calculates the following results in msg/sec. - - System throuhgput : no_of_msgs / (time_last_msg_rcvd - time_first_msg_send) - - Producer rate : no_of_msgs / (time_after_sending - time_before_sending) - - Producer rate : no_of_msgs / (time_last_msg_rcvd - time_first_msg_rcvd) - - Latency : time_msg_rcvd - time_msg_sent - -The test will print min, max and avg latency. - -1.3 The test assume that both producer and consumer are run on the same machine or different machines that are time synced. - -1.4 You can also use run_sub.sh and run_pub.sh to run different use cases with several options. - Please look at TestParams.java for all the configurable options. - -1.5 You can also use the test kit to benchmark against any vendor. - - -2.0 Soak tests --------------- -2.0 This includes a set of soak tests that can be run for a longer duration. - -2.1 A typical test will send x-1 messages and the xth message will contain an "End" marker. - The producer will print the timestamp as soon as it sends the xth message. - The consumer will reply with an empty message to the replyTo destination given in the xth message. - The consumer prints the throuhgput for the iteration and the latency for the xth message. - A typical value for x is 100k - -2.2 The feedback loop prevents the producer from overrunning the consumer. - And the printout for every xth message will let you know how many iterations been completed at any given time. - (Ex a simple cat log | wc -l will give you the how many iterations have been completed so far). - -2.2 The following results can be calculated for these tests. - - Memory, CPU for each producer/consumer - look at testkit/bin/run_soak_client.sh for an example - - You can find the Avg, Min & Max for throughput, latency, CPU and memory for the entire test run. - (look at testkit/bin/soak_report.sh) for an example). - - You could also graph throughput, latency, CPU and memory using the comma separated log files. - -2.2 If you use different machines for producer and consumer the machines have to be time synced to have meaningful latency samples. - -3.0 Perf Test report use cases -------------------------------- -3.1 Please check testkit/bin/perf_report.sh for more details - -3.2 A typical test run will send 1000 msgs during warmup and 200k msgs for result calculation. - -Test 1 Trans Queue - -Test 2 Dura Queue - -Test 3 Dura Queue Sync - -Test 4 Topic - -Test 5 Durable Topic - -Test 6 Fanout - -Test 7 Small TX (about 2 msgs per tx) - -Test 8 Large TX (about 1000 msgs per tx) - - -4.0 Soak tests use cases -------------------------- -4.1 Following are the current tests available in the test kit. - -4.2 Please refer to the source to see the javadoc and options - - -1. SimpleProducer/Consumer sends X messages at a time and will wait for confirmation from producer before proceeding with the next iteration. A no of options can be configured. - -2. MultiThreadedProducer/Consumer does the same thing as above but runs each session in a separate thread. - It can also send messages transactionally. Again a no of options can be configured. - -3. ResourceLeakTest will setup consumer/producers sends x messages and then teard down everything and continue again. - - -5.0 Running the sample perf test report ---------------------------------------- -The testkit/bin contains perf_report.sh. -It runs the above 8 use cases against a broker and print the results in a tabular format. - -For example -================================================================================================ -|Test |System throuput|Producer rate|Consumer Rate|Avg Latency|Min Latency|Max Latency| ------------------------------------------------------------------------------------------------- -|Trans_Queue | xxxxx.xx| xxxxx.xx| xxxxx.xx| xx.xx| x| xx| - - -5.1 running perf_report.sh - -5.1.1 set JAVA_HOME to point to Java 1.5 and above -5.1.2 set QPID_TEST_HOME to point to the testkit dir -5.1.3 set VENDOR_LIB to point to the Qpid (or other JMS providers) jar files. -5.1.4 start a broker -5.1.5 update the testkit/etc/jndi.properties to point to the correct broker -5.1.6 execute perf_report.sh - - -6.0 Running the sample soak test report ---------------------------------------- -The testkit/bin contains soak_report.sh -It runs MultiThreadedProducer/Consumer for the duration specified and prints a report for the following stats. -Avg, Min and Max for System Throughput, letency, CPU and memory. - -6.1 running soak_report.sh - -5.1.1 set JAVA_HOME to point to Java 1.5 and above -5.1.2 set QPID_TEST_HOME to point to the testkit dir -5.1.3 set JAR_PATH to point to the Qpid jars -5.1.4 start a broker -5.1.5 execute soak_report.sh with correct params. - Ex sh soak_report.sh 1 36000 will run for 10 hours colllecting CPU, memory every second. - -5.1.6 Please note the total duration for the test is log_freq * log_iterations - So if you want to run the test for 10 hours and collect 10 second samples then do the following - sh soak_report.sh 10 3600 - diff --git a/qpid/java/tools/README.txt b/qpid/java/tools/README.txt new file mode 100644 index 0000000000..fdde734027 --- /dev/null +++ b/qpid/java/tools/README.txt @@ -0,0 +1,153 @@ +Introduction +============ + +The Test kit for the java client consists of 2 components. + +1) A Simple Perf Test that can be used to, + a) Run a predefined perf report consisting of 8 use cases (see below) + b) Run a producer and a consumer with a number of different options + +2) Soak tests that can be run for longer durations (hours or days). + +I am planning to add some stress tests to this module as well. +Please note this is not a replacement for the existing perf/systests etc. +But rather a small test kit thats focused on providing a packaged set of tests that can be quickly deployed on an environment to do quick smoke testing or easily setup a soak test. + +Table of Contents +================= +1. Perf Kit +2. Soak Kit +3. Perf Test use cases +4. Soak Test use cases +5. Running the sample perf test report +6. Running the sample soak test report + +1.0 Perf Kit +------------ +1.1 The perf kit can be packaged as an RPM or a tar file and deploy on a target environment and run the perf report. +Or else a perf report can be automated to run every day or so an record numbers to catch perf regressions. + +1.2 It calculates the following results in msg/sec. + + System throuhgput : no_of_msgs / (time_last_msg_rcvd - time_first_msg_send) + + Producer rate : no_of_msgs / (time_after_sending - time_before_sending) + + Producer rate : no_of_msgs / (time_last_msg_rcvd - time_first_msg_rcvd) + + Latency : time_msg_rcvd - time_msg_sent + +The test will print min, max and avg latency. + +1.3 The test assume that both producer and consumer are run on the same machine or different machines that are time synced. + +1.4 You can also use run_sub.sh and run_pub.sh to run different use cases with several options. + Please look at TestParams.java for all the configurable options. + +1.5 You can also use the test kit to benchmark against any vendor. + + +2.0 Soak tests +-------------- +2.0 This includes a set of soak tests that can be run for a longer duration. + +2.1 A typical test will send x-1 messages and the xth message will contain an "End" marker. + The producer will print the timestamp as soon as it sends the xth message. + The consumer will reply with an empty message to the replyTo destination given in the xth message. + The consumer prints the throuhgput for the iteration and the latency for the xth message. + A typical value for x is 100k + +2.2 The feedback loop prevents the producer from overrunning the consumer. + And the printout for every xth message will let you know how many iterations been completed at any given time. + (Ex a simple cat log | wc -l will give you the how many iterations have been completed so far). + +2.2 The following results can be calculated for these tests. + + Memory, CPU for each producer/consumer - look at testkit/bin/run_soak_client.sh for an example + + You can find the Avg, Min & Max for throughput, latency, CPU and memory for the entire test run. + (look at testkit/bin/soak_report.sh) for an example). + + You could also graph throughput, latency, CPU and memory using the comma separated log files. + +2.2 If you use different machines for producer and consumer the machines have to be time synced to have meaningful latency samples. + +3.0 Perf Test report use cases +------------------------------- +3.1 Please check testkit/bin/perf_report.sh for more details + +3.2 A typical test run will send 1000 msgs during warmup and 200k msgs for result calculation. + +Test 1 Trans Queue + +Test 2 Dura Queue + +Test 3 Dura Queue Sync + +Test 4 Topic + +Test 5 Durable Topic + +Test 6 Fanout + +Test 7 Small TX (about 2 msgs per tx) + +Test 8 Large TX (about 1000 msgs per tx) + + +4.0 Soak tests use cases +------------------------- +4.1 Following are the current tests available in the test kit. + +4.2 Please refer to the source to see the javadoc and options + + +1. SimpleProducer/Consumer sends X messages at a time and will wait for confirmation from producer before proceeding with the next iteration. A no of options can be configured. + +2. MultiThreadedProducer/Consumer does the same thing as above but runs each session in a separate thread. + It can also send messages transactionally. Again a no of options can be configured. + +3. ResourceLeakTest will setup consumer/producers sends x messages and then teard down everything and continue again. + + +5.0 Running the sample perf test report +--------------------------------------- +The testkit/bin contains perf_report.sh. +It runs the above 8 use cases against a broker and print the results in a tabular format. + +For example +================================================================================================ +|Test |System throuput|Producer rate|Consumer Rate|Avg Latency|Min Latency|Max Latency| +------------------------------------------------------------------------------------------------ +|Trans_Queue | xxxxx.xx| xxxxx.xx| xxxxx.xx| xx.xx| x| xx| + + +5.1 running perf_report.sh + +5.1.1 set JAVA_HOME to point to Java 1.5 and above +5.1.2 set QPID_TEST_HOME to point to the testkit dir +5.1.3 set VENDOR_LIB to point to the Qpid (or other JMS providers) jar files. +5.1.4 start a broker +5.1.5 update the testkit/etc/jndi.properties to point to the correct broker +5.1.6 execute perf_report.sh + + +6.0 Running the sample soak test report +--------------------------------------- +The testkit/bin contains soak_report.sh +It runs MultiThreadedProducer/Consumer for the duration specified and prints a report for the following stats. +Avg, Min and Max for System Throughput, letency, CPU and memory. + +6.1 running soak_report.sh + +5.1.1 set JAVA_HOME to point to Java 1.5 and above +5.1.2 set QPID_TEST_HOME to point to the testkit dir +5.1.3 set JAR_PATH to point to the Qpid jars +5.1.4 start a broker +5.1.5 execute soak_report.sh with correct params. + Ex sh soak_report.sh 1 36000 will run for 10 hours colllecting CPU, memory every second. + +5.1.6 Please note the total duration for the test is log_freq * log_iterations + So if you want to run the test for 10 hours and collect 10 second samples then do the following + sh soak_report.sh 10 3600 + -- cgit v1.2.1