Performance

6 posts / 0 new
Last post
Offline
Last seen: 3 months 1 week ago
Joined: 06/15/2021
Posts: 3
Performance of RTI's internal memory pool vs tcmalloc?

We are using unbound sequences and hence need to set the QoS property:
memory_manager.fast_pool.pool_buffer_max_size

Then the question came up, what happens if the fast_pool is dropped entirely, and memory management is handed over to an external memory manager?

Has anybody done any performance measurements comparing fast_pool memory allocation with for instance tcmalloc?

We are trying to reduce the number of QoS profiles that we need to maintain, and still get reasonable performance. We run a mix of frequent small samples, and less frequent very big samples.

Organization:
Keywords:
3 posts / 0 new
Last post
Offline
Last seen: 4 weeks 1 day ago
Joined: 01/07/2021
Posts: 9
Write overhead when no subscribers attached

Hi,

When profiling our DDS application it seems like a write call will lead to that serialization is performed even in the case when no-one is subscribing to the topic. Is that observation correct? And if so, is there any way around this so that we can reduce the overhead related to write calls on unsubscribed topics.

Our use case is for logging of pretty big data types which by default is disabled but for troubleshooting purposes we want to be able to turn it on at runtime.

BR,

Christian

Organization:
Keywords:
2 posts / 0 new
Last post
Ucf bader's picture
Offline
Last seen: 6 months 2 weeks ago
Joined: 03/10/2021
Posts: 1
Concurrent threads limitation collecting dynamic data

Hello,

I have written code that periodically takes specific number of samples (complex data) each time. I am traversing the received samples to collect dynamic data (read only) building a json object that will be sent to a db.
I am facing a series issue with network blocking/delay.

My assumption is that several concurrent threads (take thread and other conversion threads) are accessing the rti infrastructure resulting some sort of network blocking.

Further info:
I've got several threads:

1) Thread responsible for the take operation.

1 post / 0 new
Offline
Last seen: 2 years 1 month ago
Joined: 08/26/2019
Posts: 1
Persistence Service Performance

Hi there

If I run a publisher and subscriber pair, I get an average of 150k samples per second. Once I enable the persistence service (writing to disk) in addition to the regular subscriber, the sample rate falls to about 2k samples per second.

I surely must have a configuration problem?!

I'm using the default configuration file in rti_connext_dds-6.0.0/resource/xml/RTI_PERSISTENCE_SERVICE.xml

Any pointers are greatly appreciated!

Thanks,

Ben

4 posts / 0 new
Last post
Offline
Last seen: 2 years 7 months ago
Joined: 05/17/2017
Posts: 4
How can I increase performance of Database Integration Service?

Hi,

I set up the RTI DB Integration Service to store samples of DDS and I used MySQL for the RDBMS.
I wanted to know how many samples are stored in a second, so I tested.

And the result was embarrassed, because under 100 samples were stored in a second.
(Of course, I published more than 100 samples per a second from a localhost datawriter.)

4 posts / 0 new
Last post
Offline
Last seen: 1 year 10 months ago
Joined: 02/02/2018
Posts: 13
Understanding on_sample_lost LOST_BY_WRITER

Trying to understand the causes of this error, how it's reported, and how to narrow down possible solutions

3 posts / 0 new
Last post
Offline
Last seen: 1 year 10 months ago
Joined: 08/13/2014
Posts: 55
Data overhead of each packet & domain ID size

Hi

I have two questions;

1- What is the data overhead of DDS Connext v 5.2.0? I read a document about it (https://www.rti.com/hubfs/docs/DDS_Over_Low_Bandwidth.pdf) which said it is 56 byte. But I'm wondering where the dynamic data and dynamic type of every packet are stored. I think they definitely need more space.

2- Is it possible to increase domain ID size? It's 8 bits (0 to 232 plus reserved IDs) (For example increase it to a 16 bits word)

Thanks in advance for your answer :)

1 post / 0 new
Offline
Last seen: 4 years 12 months ago
Joined: 09/14/2016
Posts: 1
Subscriber dropping samples (can't keep up ?)

I have a publisher/subscriber pair (created using  DDSTheParticipantFactory->create_participant_from_config). The subscriber uses a dynamic reader and waits on DDS_DATA_AVAILABLE_STATUS to receive new data from the publisher. At publication rates of > around 5 Hz, the subscriber begins to "miss" new samples, getting worse as the publication rate is increased. It will typically go for 1 - 3 seconds without seeing new samples, then receive a short burst (2 - 10) of consecutive samples, and repeat this cycle.

Organization:
3 posts / 0 new
Last post
Offline
Last seen: 6 years 4 months ago
Joined: 04/14/2015
Posts: 2
DDS_DynamicData::get_complex_member() performance

I have written code to traverse dynamic data to collect data (read only) of samples. The code yields the correct results, however, performance can be very slow. In particular, traversing samples with arrays of structures. Running valgrind, 70% of call time is dedicated to get_complex_member().  I have also tried bind_complex_member() which is 40% slower, and is counter to what I expected (eliminating the overhead of copying should be faster.)

7 posts / 0 new
Last post
Offline
Last seen: 6 years 3 months ago
Joined: 02/02/2015
Posts: 6
large data at high rate

Hi,

I am trying to send 440k at 22Hz.

the QOS profile set at the publisher is:

{reliability = false, deadline = 0, priority = 0, history = 1, durability = VOLATILE, hasKey = false}

So really this is just a bestEffort-Volatile writer.

Reader is set up same.

It's a pretty busy network.  My reader displays the topics/sec as a user feedback mechanism.  And although it often sustains 20-22Hz, it can dip as low at 4-6, and will frequently stay at 16Hz for periods of time.

Organization:
Subscribe to RSS - Performance