eclipse-iceoryx / eclipse-iceoryx/iceoryx

sendChunk, releaseChunk latencies

Open
#2,286 9 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
2.2k
Forks
492
Avg merge
18h 57m
Merged PRs (30d)
1

Description

## Required information

**Operating system:**
Ubuntu 22.04.4 LTS

**Compiler version:**
clang 18.1.4

**Eclipse iceoryx version:**
main / b9ab7ee6ce1835c63b3fc7fb4033c31e4418d5cd

**Observed result or behaviour:**
```
Function = iox::popo::PublisherPortUser::tryAllocateChunk(unsigned long, unsigned int, unsigned int, unsigned int) [1110310]
nsecs : count distribution
0 -> 1 : 0 | |
2 -> 3 : 0 | |
4 -> 7 : 0 | |
8 -> 15 : 0 | |
16 -> 31 : 0 | |
32 -> 63 : 0 | |
64 -> 127 : 0 | |
128 -> 255 : 0 | |
256 -> 511 : 0 | |
512 -> 1023 : 0 | |
1024 -> 2047 : 0 | |
2048 -> 4095 : 948 |****************************************|
4096 -> 8191 : 9 | |
8192 -> 16383 : 5 | |

avg = 5813 nsecs, total: 23929310 nsecs, count: 4116

Function = iox::popo::PublisherPortUser::sendChunk(iox::mepoo::ChunkHeader*) [1110310]
nsecs : count distribution
0 -> 1 : 0 | |
2 -> 3 : 0 | |
4 -> 7 : 0 | |
8 -> 15 : 0 | |
16 -> 31 : 0 | |
32 -> 63 : 0 | |
64 -> 127 : 0 | |
128 -> 255 : 0 | |
256 -> 511 : 0 | |
512 -> 1023 : 0 | |
1024 -> 2047 : 0 | |
2048 -> 4095 : 0 | |
4096 -> 8191 : 4 |* |
8192 -> 16383 : 123 |****************************************|
16384 -> 32767 : 70 |********************** |
32768 -> 65535 : 3 | |
65536 -> 131071 : 1 | |

```
**Expected result or behaviour:**
sendChunk latencies are way up there (as is tryAllocateChunk in my mind), especially the tails, even though we're sending with ~1000 untyped publishers split over four threads all set to iox::popo::ConsumerTooSlowPolicy::DISCARD_OLDEST_DATA (& historyCapacity = 0)

**Conditions where it occurred / Performed steps:**
Publishing with high frequency

## Additional helpful information

Built with;
```
-DINTROSPECTION=ON
-DIOX_MAX_PUBLISHERS=4096
-DIOX_MAX_SUBSCRIBERS=4096
-DIOX_MAX_SUBSCRIBERS_PER_PUBLISHER=64
-DIOX_MAX_CHUNKS_ALLOCATED_PER_PUBLISHER_SIMULTANEOUSLY=16
-DIOX_MAX_CHUNKS_HELD_PER_SUBSCRIBER_SIMULTANEOUSLY=256
-DIOX_MAX_CLIENTS_PER_SERVER=512
-DIOX_MAX_NUMBER_OF_NOTIFIERS=512

```

-Roudi runs on a dedicated core and the publishers on four dedicated cores

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.