Performance Testing 5 Publisher 1 Subscriber Error

2 posts / 0 new
Last post
Offline
Last seen: 3 weeks 18 hours ago
Joined: 02/15/2019
Posts: 26
Performance Testing 5 Publisher 1 Subscriber Error
AttachmentSize
Image icon errar.png15.93 KB

Hello,

I am trying to run the following test:

start cmd /k perftest_java.bat -pub -dataLen 100 -domain 2 -latencyCount 1000 -numIter 1000000 -bestEffort -sendQueueSize 1 -pidMultiPubTest 0 -numSubscribers 1
 
start cmd /k perftest_java.bat -pub -dataLen 100 -domain 2 -latencyCount 1000 -numIter 1000000 -bestEffort -sendQueueSize 1 -pidMultiPubTest 1 -numSubscribers 1
 
start cmd /k perftest_java.bat -pub -dataLen 100 -domain 2 -latencyCount 1000 -numIter 1000000 -bestEffort -sendQueueSize 1 -pidMultiPubTest 2 -numSubscribers 1
 
start cmd /k perftest_java.bat -pub -dataLen 100 -domain 2 -latencyCount 1000 -numIter 1000000 -bestEffort -sendQueueSize 1 -pidMultiPubTest 3 -numSubscribers 1

start cmd /k perftest_java.bat -pub -dataLen 100 -domain 2 -latencyCount 1000 -numIter 1000000 -bestEffort -sendQueueSize 1 -pidMultiPubTest 4 -numSubscribers 1
 
start cmd /k perftest_java.bat -sub -dataLen 100 -domain 2 -bestEffort -numPublishers 5
 
When the test runs I see the following outcome:
 
Subscriber: Runs continuously without errors.
Publisher 0: Runs without errors and prints out results like it should.
Publisher 1/2/3: I get the following error:
 
 
 
I checked the code and found the following:
 
Line 1297 of PefTest.java brings me to this line of code:
 
reader_listener.print_summary_latency();
 
I am assuming that the reader_listener object may be null. I came across this line of code:
 
reader_listener = new LatencyListener(num_latency,_latencyTest?writer:null);
 
I then noticed the comment that states the following: "Only publisher with ID 0 will send/receive pings".
 
Does this also happen with multiple publisher tests like the one I am trying to run? Does this mean that running multiple publishers that publish to the same subscriber isn't possible?
 
Some clarification would be great.
 
Thanks!
 
Blitz3r
 
 
 
jmorales's picture
Offline
Last seen: 2 weeks 3 days ago
Joined: 08/28/2013
Posts: 36

Hi Blitz3r,

Thanks for reporting this, and also for debugging the root cause. When using RTI Perftest to do a N-1 test (many to 1), latency is always reported by the Perftest Publisher with "pid" 0. This does not mean that the scenario you are executing is not supported, it just means that we will just answer to the 1st Publisher Application, by design.

Now, wrt your error, what version of RTI Perftest are you using? I mention this because that statement is, in the latest versions of Perftest, surrounded by this:

        if (pubID == 0) {
            reader_listener.print_summary_latency();
            reader_listener.end_test = true;
        } else {
            System.out.println("Latency results are only shown when -pidMultiPubTest = 0");
        }
 
So... the errors you are having should not happen (as the Pid would not be 0).
 
=============================================================
 

I also took the chance to review the test you are performing: I would like to ask:

-pub -dataLen 100 -domain 2 -latencyCount 1000 -numIter 1000000 -bestEffort -sendQueueSize 1 -pidMultiPubTest 4 -numSubscribers 1

Why are you setting the sendQueueSize to that number? That is going to slow down your system most likely. What kind of tests do you want to do? What are you measuring and what is the purpose of the test? I see you have been asking a bunch of questions about performance, perftest and particularly about the Java api for RTI Perftest. Could you let us know the use case (cases) you are interested in so O can somehow guide you?

Regards,

Javi