Explanation required about RTI Perftest areas.

3 posts / 0 new
Last post
Offline
Last seen: 4 weeks 7 hours ago
Joined: 02/15/2019
Posts: 23
Explanation required about RTI Perftest areas.

Hi,

I've been running some tests using RTI Perftest and have some questions regarding the architecture as well as some of the data.

I've been running these scripts:

Subscriber:

start cmd /k perftest_java.bat -dataLen 4096

start cmd /k perftest_java.bat -dataLen 4096

start cmd /k perftest_java.bat -dataLen 4096

start cmd /k perftest_java.bat -dataLen 4096

start cmd /k perftest_java.bat -dataLen 4096

Publisher:

start cmd /k perftest_java.bat -pub -dataLen 4096

I then write the results to a .csv file and here is a snippet of the results:

Publisher:

One-Way Latency (us):Ave (us):Std (us):Min (us):Max (us):
130368205.54830.5337513036
5092522445.3320520.76337550925
5737831178.523337.33337557378
6424837792.424711.93337564248
83731633.1726430.6783764248
2217230281.5724692.9983764248
2820830022.3823108.3683764248
383983095321945.283764248
460633246421306.8283764248
32929542.6422317.1132964248
943127866.6722078.1932964248
1646826989.8521428.432964248
2461926820.520657.9532964248
317932715219995.9832964248
31925474.9420421.531964248
1245224708.8820047.3331964248
2179324546.8919493.9531964248
2839524749.4218993.4631964248
3543925283.918658.5531964248
185424168.1918880.1431964248

 

Firstly, what exactly is the measurement of the one-way latency since this is 1 publisher to 5 subscribers? As seen from above every 5 results drops to a low value before rising for the next 5 values and then repeating itself. Why does this happen? Since this is 1 publisher and 5 subscribers, how are the results measured. What is the architecture of the system?

I really appreciate any answers and if there is anything required from me please do let me know.

Thanks,

Blitz3r

jmorales's picture
Offline
Last seen: 3 weeks 3 days ago
Joined: 08/28/2013
Posts: 27

Hello,

First: I think you are missing some parameters in order to correctly setup the test you want:

By default, RTI Perftest Publisher is going to wait JUST FOR ONE subcriber, therefore, I believe the results you took are not valid.

If you want to specify the number of subscribers, you will need to do something like this:

- Specify in the publisher side the number of subscriber you will launch (-numSubscribers)
- Specify the id of each subscriber with -sidMultiSubTest <#> (# being 0, 1, 2, ..., N-1) in each subscriber.

Therefore you will need to launch something like this:

start cmd /k perftest_java.bat -dataLen 4096 -pub -domain X -numSubscribers 5 -executionTime Y

start cmd /k perftest_java.bat -dataLen 4096 -domain X -sidMultiSubTest 0

start cmd /k perftest_java.bat -dataLen 4096 -domain X -sidMultiSubTest 1

start cmd /k perftest_java.bat -dataLen 4096 -domain X -sidMultiSubTest 2

start cmd /k perftest_java.bat -dataLen 4096 -domain X -sidMultiSubTest 3

start cmd /k perftest_java.bat -dataLen 4096 -domain X -sidMultiSubTest 4

 

Second: With respect to the architecture of the system: In the scenario I just mentioned, the publisher side will wait until it finds 5 perftest applications acting as subscribers, then it will start doing a Throughput test.

Doing a throughput test means that it will start sending samples as fast as possible, and once every `latencyCount` samples (which for a Throughput test is 10000 samples), it will mark the sample so it is answered by one subscriber. The answer is the exact same sample, so, by getting the time when you sent it and the time when you receive it back you can get the Round-Trip Time (RTT), which is twice the latency.

This is also important: Doing a Throughput test will give you the maximum throughput (mbps) at what the publisher will be able to send samples to N subscribers. The latency you will get there is there impacted by the fact that you are in a crowed network, with your queues being full. If you want to test te minimum latency you will be able to achieve, you will need to do a Latency Test instead.

In order to do a latency test, you will only need to add `-LatencyTest` to your Perftest publisher command line parameters. This will change the behavior of the test. Now, instead of trying to send as fast as possible, it will do a ping pong test: Send a sample and wait until it receives it back to calculate the RTT (and therefore the Latency), then send again.

Last: In this scenario with multiple subscribers and since perftest uses by default unicast, I highly recommend you test also with the `-multicast` parameter, since it should help you optimize your bandwidth (sending one single packet per sample, instead of having to send one packet containing the sample to each subscriber).

Hope all this helps you. Let me know if you have further questions.

Offline
Last seen: 4 weeks 7 hours ago
Joined: 02/15/2019
Posts: 23

Hi Javier,

Apologies for the late reply but I want thank you greatly. I really appreciate the descriptive explanation. I now understand the testing variations better now.

Thanks!

Blitz3r