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.1. C++ Shared Memory Best Effort Keyed

Table 9.1 Latency C++ Shared Memory Best Effort Keyed
Size (Bytes) Ave (us) Std (us) Min (us) Max (us) 50% (us) 90% (us) 99% (us) 99.9% (us)
32 12 0.6 11 302 12 13 14 17
64 12 0.6 11 296 12 13 14 17
128 12 0.7 11 530 12 13 14 17
256 13 0.7 12 303 13 13 15 18
1024 13 0.6 12 304 13 13 15 17
4096 14 0.6 13 293 14 14 16 18
8192 15 0.7 14 311 15 15 17 21
63000 29 1.2 26 317 29 30 32 36

9.1.2. C++ Shared Memory Best Effort Unkeyed

Table 9.2 Latency C++ Shared Memory Best Effort Unkeyed
Size (Bytes) Ave (us) Std (us) Min (us) Max (us) 50% (us) 90% (us) 99% (us) 99.9% (us)
32 12 0.6 11 294 12 12 13 16
64 12 0.6 11 307 12 12 13 16
128 13 1.4 11 301 12 14 15 17
256 12 0.4 11 305 12 12 13 16
1024 12 0.4 11 311 12 12 14 16
4096 13 1.1 12 587 13 16 16 19
8192 14 0.5 13 298 14 14 16 20
63000 27 1.2 25 314 27 29 30 34

9.1.3. C++ Shared Memory Reliable Keyed

Table 9.3 Latency C++ Shared Memory Reliable Keyed
Size (Bytes) Ave (us) Std (us) Min (us) Max (us) 50% (us) 90% (us) 99% (us) 99.9% (us)
32 17 1.7 13 299 16 20 22 25
64 17 1.9 14 597 16 20 22 25
128 17 1.8 13 306 16 20 22 25
256 17 1.9 13 560 16 20 22 25
1024 17 1.8 14 300 17 20 23 26
4096 18 1.8 15 313 18 21 23 27
8192 19 1.8 17 321 19 23 25 28
63000 34 1.8 29 314 34 37 40 43

9.1.4. C++ Shared Memory Reliable Unkeyed

Table 9.4 Latency C++ Shared Memory Reliable Unkeyed
Size (Bytes) Ave (us) Std (us) Min (us) Max (us) 50% (us) 90% (us) 99% (us) 99.9% (us)
32 16 1.8 14 585 15 19 21 24
64 16 1.8 13 297 16 19 21 24
128 16 1.8 13 563 16 19 21 24
256 16 1.9 14 871 15 19 21 24
1024 17 1.7 13 571 16 19 22 24
4096 17 1.7 15 317 17 21 23 26
8192 19 1.8 15 560 18 22 24 27
63000 33 1.9 29 323 32 36 39 42

9.1.5. C++ UDPv4 1Gbps Best Effort Keyed

Table 9.5 Latency 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

Table 9.6 Latency 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

Table 9.7 Latency 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

Table 9.8 Latency 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