eclipse-iceoryx / eclipse-iceoryx/iceoryx
sendChunk, releaseChunk latencies
- 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
Assessment
This issue has not been assessed yet.