Running Performance Tests ------------------------- This performance test suite contains a number of tests. - Service request-reply - Ping-Pong - Topic Service request-reply --------------------- Description: This is the simplest test to ensure everything is working. This involves one client that is known as a "service provider" and it listens on a well-known queue for requests. Another client, known as the "service requester" creates a private (temporary) response queue, creates a message with the private response queue set as the "reply to" field and then publishes the message to the well known service queue. The test allows you to time how long it takes to send messages and receive the response back. It also allows varying of the message size. Quick Run: ./serviceRequestReply-QuickTest.sh This provides a quick test to run everything against a running broker. Simply specify broker and number of messages to run. Detailed Run: You must start the service provider first: serviceProvidingClient.sh [ ] [selector] where Brokerdetails is the connection information to the broker you are running on; e.g. localhost or localhost:5670 or tcp://10.10.10.10:5677. By default Non Persistent, Non Transaction messages are used in the response. A selector may also be specified. To run the service requester: serviceRequestingClient.sh [] [ ] This requests the of a . By default the connection is Non Persistent and Non Transactional. After receiving all the messages the client outputs the rate it achieved. Ping-Pong --------- Description: Quick Run: Detailed Run: Topic ------- Description: A more realistic test is the topic test, which tests the performance of the topic exchange to a configurable number of clients (e.g. 50). A publisher sends batches of of messages to a topic that a number of clients are subscribed to. The clients recevie each all the messages and then send a response. The time taken to send all messages and receive a response from all clients is displayed. Quick Run: ./topic-QuickTest.sh This provides a quick test to run everything against a running broker. Simply specify host, port, the number of messages, number of clients and number of batches to run this quick test. Detailed Run: You must run the listener processes first: run_many.sh 10 topic "topicListener.sh [-host -port ]" In this command, the first argument means start 10 processes, the second is just a name use in the log files generated and the third argument is the command to run the specified number of times. The topicListener by default connects to localhost:5672 this can be changed using the above flags. Then run the publisher process: headersPublisher.sh [-host -port -messages -clients -batch ] The default is to connect to localhost:5672 and send 1 batch of 1000 messages expecting 1 client to respond. Note that before starting the publisher you should wait about 30 seconds to ensure all the clients are registered with the broker (you can see this from the broker output). Otherwise the numbers will be slightly skewed. Additional parameters to scripts Publisher -payload : specify the payload size (256b Default) -delay : Number of seconds to send between batches (0 Default) -warmup : Number of messages to send as a warm up (0 Default) -ack : Acknowledgement mode - 1 : Auto - 2 : Client - 3 : Dups_OK - 257 : No (Default) - 258 : Pre -factory : ConnectionFactoryInitialiser class -persistent <"true"|other> : User persistent messages if string equals "true" (false Default) -clientId : Set client id -subscriptionId : set subscription id