9.1. Latency Benchmarks¶
The end-to-end latency is measured between two identical machines using the test configuration below and running the RTI Connext DDS Performance Test tool.
The test environment consists of:
- x86_64 CentOS Linux release 7.1.1503
- RTI Perftest 3.0
- Switch Configuration: D-Link DXS-3350 SR:
- 176Gbps Switching Capacity
- Dual 10-Gig stacking ports and optional 10-Gig uplinks
- Stacks up to 8 units per stack
- 4MB (Packet Buffer Size)
- 48 x 10/100/1000BASE-T ports
- Machine:
- Intel I350 Gigabit NIC
- Intel Core i7 CPU:
- 12MB cache
- 6 Cores (12 threads)
- 3.33 GHz CPU speed
- 12GB memory
The latency is measured by sending one PING sample and wait for the Echoer to return the PONG sample. The sender records the time it took to receive the PONG sample and divides the result by 2. The test is repeated a number of times for each size. Note that the end-to-end latency is measured.
Interpretation of the measurements (all numbers are reported in micro-seconds):
- Bytes - The size of the DDS sample payload (UDP overhead is _not_ included) in bytes.
- Ave - Average latency
- Std - Standard deviation
- Min - The minimum latency
- Max - The maximum latency
- 50% - The 50th percentile latency
- 90% - The 90th percentile latency
- 99% - The 99th percentile latency
- 99.99% - The 99.99th percentile latency
9.1.5. C++ UDPv4 1Gbps Best Effort Keyed¶
Size (Bytes) | Ave (us) | Std (us) | Min (us) | Max (us) | 50% (us) | 90% (us) | 99% (us) | 99.9% (us) |
---|---|---|---|---|---|---|---|---|
32 | 31 | 0.8 | 30 | 321 | 31 | 32 | 33 | 37 |
64 | 32 | 0.8 | 31 | 334 | 32 | 33 | 34 | 38 |
128 | 33 | 0.7 | 32 | 311 | 33 | 34 | 35 | 38 |
256 | 36 | 0.9 | 33 | 581 | 36 | 36 | 38 | 41 |
1024 | 51 | 1.1 | 49 | 359 | 51 | 51 | 53 | 56 |
4096 | 83 | 1.6 | 82 | 854 | 83 | 83 | 85 | 88 |
8192 | 120 | 1.0 | 119 | 343 | 120 | 121 | 122 | 125 |
63000 | 612 | 1.6 | 610 | 859 | 612 | 613 | 615 | 632 |
9.1.6. C++ UDPv4 1Gbps Best Effort Unkeyed¶
Size (Bytes) | Ave (us) | Std (us) | Min (us) | Max (us) | 50% (us) | 90% (us) | 99% (us) | 99.9% (us) |
---|---|---|---|---|---|---|---|---|
32 | 30 | 0.8 | 29 | 315 | 30 | 31 | 32 | 35 |
64 | 31 | 1.0 | 30 | 588 | 31 | 31 | 33 | 35 |
128 | 32 | 0.6 | 31 | 334 | 32 | 33 | 34 | 36 |
256 | 35 | 0.8 | 33 | 331 | 35 | 35 | 37 | 39 |
1024 | 50 | 0.9 | 48 | 339 | 50 | 50 | 52 | 54 |
4096 | 82 | 1.1 | 81 | 351 | 82 | 83 | 84 | 88 |
8192 | 119 | 1.0 | 118 | 370 | 119 | 120 | 121 | 125 |
63000 | 610 | 1.0 | 608 | 637 | 610 | 611 | 613 | 632 |
9.1.7. C++ UDPv4 1Gbps Reliable Keyed¶
Size (Bytes) | Ave (us) | Std (us) | Min (us) | Max (us) | 50% (us) | 90% (us) | 99% (us) | 99.9% (us) |
---|---|---|---|---|---|---|---|---|
32 | 36 | 1.8 | 33 | 326 | 35 | 38 | 42 | 46 |
64 | 36 | 1.6 | 34 | 574 | 35 | 36 | 43 | 46 |
128 | 39 | 2.1 | 35 | 333 | 38 | 40 | 45 | 48 |
256 | 42 | 1.7 | 39 | 577 | 41 | 43 | 47 | 51 |
1024 | 56 | 1.7 | 52 | 352 | 55 | 57 | 62 | 66 |
4096 | 89 | 1.8 | 87 | 565 | 88 | 90 | 95 | 99 |
8192 | 126 | 1.9 | 124 | 407 | 125 | 127 | 132 | 136 |
63000 | 618 | 1.9 | 615 | 821 | 618 | 620 | 624 | 641 |
9.1.8. C++ UDPv4 1Gbps Reliable Unkeyed¶
Size (Bytes) | Ave (us) | Std (us) | Min (us) | Max (us) | 50% (us) | 90% (us) | 99% (us) | 99.9% (us) |
---|---|---|---|---|---|---|---|---|
32 | 35 | 2.0 | 32 | 570 | 35 | 37 | 42 | 45 |
64 | 36 | 2.2 | 31 | 576 | 35 | 38 | 42 | 46 |
128 | 37 | 1.8 | 35 | 534 | 37 | 39 | 43 | 47 |
256 | 41 | 2.0 | 37 | 589 | 40 | 43 | 47 | 50 |
1024 | 55 | 1.5 | 52 | 349 | 54 | 56 | 60 | 64 |
4096 | 88 | 1.4 | 84 | 384 | 87 | 89 | 91 | 97 |
8192 | 125 | 1.4 | 123 | 342 | 125 | 126 | 130 | 134 |
63000 | 618 | 1.9 | 615 | 775 | 618 | 621 | 624 | 640 |