13. Using RTI Perftest with RTI Routing-Service

This wrapper has been created to test the effects of introducing RTI Routing Service when using RTI Perftest in latency and Throughput. It consists of a set of 2 files:

  • A compatible XML configuration file for RTI Routing Service parameterized to use different environment variables depending on the scenario to test.
  • A wrapper script to launch RTI Routing Service which will set the environment variables needed by the XML configuration file previously mentioned. It contains several command-line parameters to control the scenario to be tested.

13.1. Command-Line Parameters

  • -domain <ID>

    Domain ID.

    RTI Routing Service will route between the provided domain (ID) and (ID + 1).

    Default: 0
    Range: 0 - 200
  • -sendQueueSize <number>

    Size of the send queue for the Writers used in RTI Routing Service

    Default: 50
    Range: [1-100 million]
  • -bestEffort

    Use best-effort reliability settings.

    Default: false (use reliable communication).

  • -asynchronous

    Enable asynchronous publishing in the DataWriter QoS.

    Default: Not set

  • -unbounded

    Use Unbounded Sequences and Large samples.

    Default: Not set

  • -verbosity

    Specify the verbosity level for RTI Routing Service

    0 - SILENT
    1 - ERROR (default) 2 - WARNING
    3 - ALL
  • -keyed

    Specify the use of a keyed type.

    Default: Unkeyed type.

  • -batchSize <bytes>

    Enable batching and set the maximum batched message size.

    Default: 0 (batching disabled)
    Range: 1 to 63000
  • -executionTime <sec>

    Limit the test duration by specifying the number of seconds to keep RTI Routing Service running.

    Default: Not set, infinite.

  • -nddshome

    Path to the RTI Connext DDS installation. If this parameter is not present, the $NDDSHOME variable will be used.

13.2. Example Command Lines for Running the Performance Test

The followings are examples of how to run the performance test for different use cases.

13.2.1. Minimum Latency – 1 Routing Service

  • RTI Perftest Publisher:
bin/<arch>/release/perftest_cpp -pub -noPrint -nic <ipaddr> -domain <ID> -latencyCount 1 -dataLen <length> -latencyTest -executionTime 100
  • RTI Routing Service wrapper script:
resource/routing_service/routingservice_wrapper.sh -domain <ID> -executionTime 120
  • RTI Perftest Subscriber:
bin/<arch>/release/perftest_cpp -sub -noPrint -nic <ipaddr> -domain <ID+1> -dataLen <length>

13.2.2. Maximum Throughput – 1 Routing Service

  • RTI Perftest Publisher:
bin/<arch>/release/perftest_cpp -pub -noPrint -nic <ipaddr> -domain <ID> -batchSize <bytes> -sendQueueSize <number> -executionTime 100 -dataLen <length>
  • RTI Routing Service wrapper script:
resource/routing_service/routingservice_wrapper.sh -domain <ID> -executionTime 120 -batchSize <bytes> -sendQueueSize <number>
  • RTI Perftest Subscriber:
bin/<arch>/release/perftest_cpp -sub -noPrint -nic <ipaddr> -domain <ID+1> -dataLen <length>

13.2.3. Maximum Throughput – 2 Routing Service

  • RTI Perftest Publisher:
bin/<arch>/release/perftest_cpp -pub -noPrint -nic <ipaddr> -domain <ID> -batchSize <bytes> -sendQueueSize <number> -executionTime 100 -dataLen <length>
  • RTI Routing Service 1 wrapper script:
resource/routing_service/routingservice_wrapper.sh -domain <ID> -executionTime 120 -batchSize <bytes> -sendQueueSize <number>
  • RTI Routing Service 2 wrapper script:
resource/routing_service/routingservice_wrapper.sh -domain <ID+1> -executionTime 120 -batchSize <bytes> -sendQueueSize <number>
  • RTI Perftest Subscriber:
bin/<arch>/release/perftest_cpp -sub -noPrint -nic <ipaddr> -domain <ID+2> -dataLen <length>