Search code examples
javabenchmarkingmessagingamqpqpid

Interpreting qpid-bench output


I'm running the qpid-bench tool that comes with Apache qpid against a couple different machines to bench mark the performance. I haven't been able to find any documentation on the output/results from the qpid-bench program. Here are the results from a sample test:

$ qpid-bench
broker = localhost                                                                                                                                                                                                                                                             
port = 5672                                                                                                                                                                                                                                                                    
count = 1000000                                                                                                                                                                                                                                                                
window = 100000                                                                                                                                                                                                                                                                
sample = 100000                                                                                                                                                                                                                                                                
size = 1024                                                                                                                                                                                                                                                                    
mode = BOTH                                                                                                                                                                                                                                                                    
timestamp = false                                                                                                                                                                                                                                                              
message_id = false                                                                                                                                                                                                                                                             
message_cache = false                                                                                                                                                                                                                                                          
persistent = false                                                                                                                                                                                                                                                             
jms_publish = false                                                                                                                                                                                                                                                            
jms_consume = false                                                                                                                                                                                                                                                            
help = false                                                                                                                                                                                                                                                                   
IoReceiver - localhost/127.0.0.1:5672 2011-12-23 09:39:11,427 INFO ...                                    
IoReceiver - localhost/127.0.0.1:5672 2011-12-23 09:39:11,427 INFO ...                                                             
NP: Fri Dec 23 09:39:11 PST 2011                   --                                                                                                                                                                                                                          
               --                   NC: Fri Dec 23 09:39:11 PST 2011                                                                                                                                                                                                           
NP: 100000 6246.49 6246.49                         --                                                                                                                                                                                                                          
               --                   NC: 100000 6205.01 6205.01                                                                                                                                                                                                                 
NP: 200000 6775.07 7401.38                         --                                                                                                                                                                                                                          
               --                   NC: 200000 6758.58 7420.60                                                                                                                                                                                                                 
NP: 300000 6795.94 6838.07                         --                                                                                                                                                                                                                          
               --                   NC: 300000 6782.27 6830.13                                                                                                                                                                                                                 
NP: 400000 6618.02 6136.10                         --                                                                                                                                                                                                                          
               --                   NC: 400000 6609.28 6139.49                                                                                                                                                                                                                 
NP: 500000 6673.07 6902.74                         --                                                                                                                                                                                                                          
               --                   NC: 500000 6662.31 6883.26                                                                                                                                                                                                                 
NP: 600000 6723.89 6990.07                         --                                                                                                                                                                                                                          
               --                   NC: 600000 6707.36 6942.03                                                                                                                                                                                                                 
NP: 700000 6780.32 7139.80                         --                                                                                                                                                                                                                          
               --                   NC: 700000 6775.07 7211.89                                                                                                                                                                                                                 
NP: 800000 6679.08 6047.05                         --                                                                                                                                                                                                                          
               --                   NC: 800000 6673.67 6040.84                                                                                                                                                                                                                 
NP: 900000 6547.26 5654.51                         --                                                                                                                                                                                                                          
               --                   NC: 900000 6538.56 5627.15                                                                                                                                                                                                                 
Producer Completed
Consumer Completed

I'll guess NP is the number published and NC is the number consumed per window. The first number is the number count of messages sent/received. What do the second and third numbers mean?


Solution

  • Here is the source for QpidBench.java: https://svn.apache.org/repos/asf/qpid/trunk/qpid/java/tools/src/main/java/org/apache/qpid/tools/QpidBench.java

    Here are the options for the qpid-bench command:

    $ qpid-bench --help
       qpid-bench <options>
      -b, --broker    (localhost)   the broker hostname
      -p, --port      (5672)        the broker port
      -c, --count     (1000000)     the number of messages to send/receive, 0 means no limit
      -w, --window    (100000)      the number of messages to send before blocking, 0 disables
      --sample        (100000)      print stats after this many messages, 0 disables
      -i, --interval  (100000)      sets both --window and --sample
      -s, --size      (1024)        the message size
      -m, --mode      (BOTH)        one of publish, consume, or both
      --timestamp     (false)       set timestamps on each message if true
      --mesage-id     (false)       set the message-id on each message if true
      --message-cache (false)       reuse the same message for each send if true
      --persistent    (false)       set the delivery-mode to persistent if true
      --jms-publish   (false)       use the jms client for publish
      --jms-consume   (false)       use the jms client for consume
      --jms           (false)       sets both --jms-publish and --jms-consume
      -h, --help                    prints this message
    

    The first number cumulative as defined by "double cumulative = 1000 * (double) count / (double) (time - start);" in QPidBench.java. i.e. the total number published or consumed at each sample period.

    The second number interval is defined by "double interval = 1000 * ((double) opts.sample / (double) (time - lastTime));" in QpidBench.java. i.e. the number published or consumed at each sample period.

    count is the number of messages published/consumed and opts.sample is the sample size as defined in the options when qpid-bench is ran.