10. Example Command-Lines for Running the Performance Test¶
The followings are examples of how to run the performance test for different use cases.
- The tests below print final results only; if you want to see
intermediate values, remove the
-noprint
argument from the command line. - If you are running on 2 unequal machines, i.e., one machine is faster (has better processors) than another, you will see better performance by running the Publisher on the slower machine.
- To measure CPU usage while running these tests, use “-cpu” argument or TOP utility.
10.1. 1-to-1, Multicast, Best Latency as a Function of Message Size¶
- Publisher:
bin/<arch>/release/perftest_cpp -pub -noPrint -nic <ipaddr> -domain <ID> -latencyCount 1 -dataLen <length> -latencyTest -multicast -executionTime 100
- Subscriber:
bin/<arch>/release/perftest_cpp -sub -noPrint -nic <ipaddr> -domain <ID> -multicast
Modify -dataLen <bytes>
to see latencies for different data sizes.
Set -executionTime <seconds>
to be >=100 for statistically better
results.
10.2. 1-to-1, Multicast, Maximum Throughput as a Function of Message Size (with Batching)¶
- Publisher:
bin/<arch>/release/perftest_cpp -pub -noPrint -nic <ipaddr> -dataLen <length> -batchSize <bytes> -sendQueueSize <number> -multicast -executionTime 100
- Subscriber:
bin/<arch>/release/perftest_cpp -sub -noprint -nic <ipaddr> -multicast
To achieve maximum throughput, start by setting See
-batchSize <bytes>
to 6400
, then increase the size to see if you
get better throughput.
The largest valid batch size is 63000 bytes
.
For maximum throughput, start by setting -sendQueueSize <number>
to
30
; the best value will usually be between 30-50
.
Note: For larger data sizes (8000 bytes
and higher), batching often
does not improve throughput, at least for 1-Gig networks.
10.3. 1-to-1, Multicast, Latency vs. Throughput for 200-byte Messages (with Batching)¶
- Publisher:
bin/<arch>/release/perftest_cpp -pub -noPrint -nic <ipaddr> -dataLen 200 -batchSize <bytes> -sendQueueSize <number> -spin <count> -multicast -executionTime 100
- Subscriber
bin/<arch>/release/perftest_cpp -sub -noPrint -nic <ipaddr> -multicast
To adjust throughput, experiment with the value of -spin <count>
.
For example, to get a rate of 10,000 messages/sec, use -spin 20000
to see the resulting rate, then adjust up or down as needed.
10.4. 1-to-1, Multicast, Reliable UDPv4, All Sizes¶
- Publisher:
bin/<arch>/release/perftest_cpp -pub -noPrint -sendQueueSize 32 -latencyCount 10000 -scan -multicast
- Subscriber:
bin/<arch>/release/perftest_cpp -sub -noPrint -multicast
10.5. 1-to-1, Unicast, Best-Effort, UDPv4, 1 Size¶
- Publisher:
bin/<arch>/release/perftest_cpp -pub -noPrint -sendQueueSize 32 -latencyCount 1000 -dataLen 1024 -bestEffort -executionTime 100
- Subscriber
bin/<arch>/release/perftest_cpp -sub -noPrint -dataLen 1024 -bestEffort
10.6. 1-to-1, Multicast, Reliable, UDPv4, Batching Enabled¶
- Publisher:
bin/<arch>/release/perftest_cpp -pub -noPrint -sendQueueSize 32 -latencyCount 1000 -dataLen 200 -batchSize 6400 -multicast -executionTime 100
- Subscriber:
bin/<arch>/release/perftest_cpp -sub -noPrint -dataLen 200 -batchSize 6400 -multicast
10.7. 1-to-2, Multicast, Reliable, UDPv4¶
- Publisher:
bin/<arch>/release/perftest_cpp -pub -noPrint -pidMultiPubTest 0 -sendQueueSize 32 -numSubscribers 2 -latencyCount 1000 -dataLen 200 -multicast -executionTime 100
- Subscriber 1:
bin/<arch>/release/perftest_cpp -sub -noPrint -dataLen 200 -batchSize 6400 -multicast
- Subscriber 2:
bin/<arch>/release/perftest_cpp -sub -noPrint -dataLen 200 -batchSize 6400 -multicast
10.8. 2-to-1, Multicast, Reliable, UDPv4¶
- Publisher 1:
bin/<arch>/release/perftest_cpp -pub -noPrint -pidMultiPubTest 0 -sendQueueSize 32 -numSubscribers 1 -latencyCount 1000 -dataLen 200 -multicast -executionTime 100
- Publisher 2:
bin/<arch>/release/perftest_cpp -pub -noPrint -pidMultiPubTest 1 -sendQueueSize 32 -numSubscribers 1 -latencyCount 1000 -dataLen 200 -multicast -executionTime 100
- Subscriber:
bin/<arch>/release/perftest_cpp -sub -noPrint -dataLen 200 -numPublishers 2 -sidMultiSubTest 0 -multicast
10.9. 1-to-1, Unicast, Reliable, UDPv4, Using Security: Signing Packages, Encrypting Data¶
- Publisher:
bin/<arch>/release/perftest_cpp -pub -noPrint -dataLen 63000 -secureSign -secureEncryptData -executionTime 100
- Subscriber
bin/<arch>/release/perftest_cpp -sub -noPrint -dataLen 63000 -secureSign -secureEncryptData