1.4.1. RTI Routing Service¶
The following tests have been performed by executing the RTI Perftest C++98 benchmark application between two nodes and RTI Routing Service in a third node, all of them connected to a switch via Ethernet. The communication has been restricted to a single interface, and the transport has been set to UDPv4 for the three applications.
In this test, communication between the RTI Perftest Publisher and Subscriber is not direct, all traffic is routed with Routing Service. The Publisher application sends the samples, which are received and routed using Routing Service to the Subscriber application. If the sample needs to be returned to the Publisher application, the Subscriber sends it back, again through Routing Service. The latency measured is half Round Trip Time (RTT).
Find information about the hardware, network, and command-line parameters after each of the tests.
1.4.1.1. UDPv4¶
The graph below shows the one-way latency without load between a Publisher, a Routing Service, and a Subscriber running in three Linux nodes in a 10Gbps network. The numbers are for best-effort as well as strict reliable reliability scenarios.
Note
We use the median (50th percentile) instead of the average in order to get a more stable measurement that does not account for spurious outliers. We also calculate the average value and other percentile values, which can be seen in the Detailed Statistics section below.
Detailed Statistics
The following tables contain the raw numbers presented by RTI Perftest. These numbers are the exact output with no further processing.
Best Effort
Sample Size (Bytes) |
Avg (μs) |
Std (μs) |
Min (μs) |
Max (μs) |
50% (μs) |
90% (μs) |
99% (μs) |
99.99% (μs) |
99.9999% (μs) |
CPU (%) |
---|---|---|---|---|---|---|---|---|---|---|
32 |
44 |
18.8 |
38 |
9344 |
41 |
57 |
63 |
97 |
9344 |
|
64 |
45 |
20.7 |
38 |
9822 |
42 |
57 |
64 |
100 |
9822 |
|
128 |
45 |
17.2 |
38 |
8913 |
41 |
58 |
63 |
92 |
8913 |
|
512 |
47 |
20.0 |
40 |
9046 |
43 |
59 |
68 |
124 |
9046 |
|
1024 |
51 |
22.9 |
43 |
9217 |
47 |
62 |
78 |
99 |
9217 |
|
4096 |
60 |
5.6 |
55 |
120 |
57 |
66 |
83 |
114 |
120 |
|
8192 |
90 |
8.3 |
74 |
160 |
94 |
96 |
104 |
133 |
160 |
|
16384 |
195 |
42.3 |
95 |
330 |
192 |
247 |
295 |
322 |
330 |
|
32768 |
336 |
17.4 |
153 |
398 |
348 |
355 |
359 |
364 |
398 |
|
63000 |
376 |
6.0 |
218 |
446 |
376 |
379 |
384 |
400 |
446 |
Reliable
Sample Size (Bytes) |
Avg (μs) |
Std (μs) |
Min (μs) |
Max (μs) |
50% (μs) |
90% (μs) |
99% (μs) |
99.99% (μs) |
99.9999% (μs) |
CPU (%) |
---|---|---|---|---|---|---|---|---|---|---|
32 |
45 |
8.9 |
36 |
133 |
40 |
60 |
63 |
70 |
133 |
|
64 |
45 |
9.0 |
36 |
121 |
41 |
60 |
63 |
70 |
121 |
|
128 |
46 |
8.2 |
36 |
91 |
43 |
60 |
62 |
69 |
91 |
|
512 |
46 |
357.6 |
38 |
100077 |
41 |
58 |
62 |
71 |
100077 |
|
1024 |
49 |
7.5 |
40 |
95 |
47 |
61 |
63 |
70 |
95 |
|
4096 |
58 |
1.8 |
55 |
125 |
58 |
61 |
63 |
75 |
125 |
|
8192 |
75 |
1.8 |
72 |
128 |
74 |
78 |
79 |
87 |
128 |
|
16384 |
189 |
30.2 |
99 |
346 |
186 |
214 |
336 |
342 |
346 |
|
32768 |
347 |
9.9 |
139 |
396 |
350 |
352 |
354 |
364 |
396 |
|
63000 |
371 |
4.7 |
206 |
396 |
371 |
373 |
375 |
383 |
396 |
Test Hardware
The following hardware was used to perform these tests:
Linux Nodes
Dell R340 Servers (13 Units)
Processor: Intel Xeon E-2278G (3.4-5GHz, 8c/16t, 16MB cache, 2 memory channels @2666MHz)
RAM: 4x 16GB 2666MHz DIMM (64GB RAM)
HD: 480GB SATA SSD
NIC 1: Intel 710 dual port 10Gbps SFP
OS: Ubuntu 20.04 -- gcc 9.3.0
Switch
Dell 2048 -- 10Gbps switch (10Gbps and 1Gbps interfaces)
The graph below shows the expected throughput behavior when performing a 1-1 communication between a Publisher, a Routing Service, and a Subscriber running in three Linux nodes in a 1Gbps network. The numbers are for best-effort as well as strict reliable reliability scenarios.
Note
By default, RTI Perftest enables batching when performing a Maximum Throughput test. The batching feature allows sending more than one data sample per RTPS packet, improving network performance for small data sizes. See the RTI Connext Core Libraries User’s Manual for more information on batching.
The batch maximum size is set by RTI Perftest to be 8192 bytes; after 8192 bytes, batching is not enabled.
Detailed Statistics
This table contains the raw numbers presented by RTI Perftest. These numbers are the exact output with no further processing.
Best Effort
Sample Size (Bytes) |
Total Samples |
Avg Samples/s |
Avg Mbps |
Lost Samples |
Lost Samples (%) |
CPU (%) |
---|---|---|---|---|---|---|
32 |
5595904 |
268893 |
68.8 |
94404096 |
94.40 |
|
64 |
6168064 |
272913 |
139.7 |
93831936 |
93.83 |
|
128 |
7030528 |
275728 |
282.3 |
92969472 |
92.97 |
|
512 |
8221840 |
273150 |
1118.8 |
58039440 |
87.59 |
|
1024 |
7630800 |
253513 |
2276.8 |
28074584 |
78.63 |
|
4096 |
6206224 |
206185 |
6756.3 |
2771696 |
30.87 |
|
8192 |
4508374 |
150259 |
9847.4 |
0 |
0.00 |
|
16384 |
2263408 |
75438 |
9887.9 |
49 |
0.00 |
|
32768 |
1134034 |
37796 |
9908.3 |
21 |
0.00 |
|
63000 |
590258 |
19672 |
9915.2 |
7 |
0.00 |
Reliable
Sample Size (Bytes) |
Total Samples |
Avg Samples/s |
Avg Mbps |
Lost Samples |
Lost Samples (%) |
CPU (%) |
---|---|---|---|---|---|---|
32 |
4875265 |
161788 |
41.4 |
0 |
0.00 |
|
64 |
4939009 |
164220 |
84.1 |
0 |
0.00 |
|
128 |
4927617 |
163964 |
167.9 |
0 |
0.00 |
|
512 |
4859856 |
161722 |
662.4 |
0 |
0.00 |
|
1024 |
4695753 |
156282 |
1280.3 |
0 |
0.00 |
|
4096 |
4178251 |
139098 |
4558.0 |
0 |
0.00 |
|
8192 |
3660240 |
121826 |
7984.0 |
0 |
0.00 |
|
16384 |
2259808 |
75326 |
9873.1 |
0 |
0.00 |
|
32768 |
1133396 |
37776 |
9902.8 |
0 |
0.00 |
|
63000 |
590081 |
19668 |
9912.7 |
0 |
0.00 |
Test Hardware
The following hardware was used to perform these tests:
Linux Nodes
Dell R340 Servers (13 Units)
Processor: Intel Xeon E-2278G (3.4-5GHz, 8c/16t, 16MB cache, 2 memory channels @2666MHz)
RAM: 4x 16GB 2666MHz DIMM (64GB RAM)
HD: 480GB SATA SSD
NIC 1: Intel 710 dual port 10Gbps SFP
OS: Ubuntu 20.04 -- gcc 9.3.0
Switch
Dell 2048 -- 10Gbps switch (10Gbps and 1Gbps interfaces)
The graph below shows the one-way latency without load between a Publisher, a Routing Service, and a Subscriber running in three Linux nodes in a 10Gbps network. The numbers are for best-effort as well as strict reliable reliability scenarios.
Note
We use the median (50th percentile) instead of the average in order to get a more stable measurement that does not account for spurious outliers. We also calculate the average value and other percentile values, which can be seen in the Detailed Statistics section below.
Detailed Statistics
The following tables contain the raw numbers presented by RTI Perftest. These numbers are the exact output with no further processing.
Best Effort
Sample Size (Bytes) |
Avg (μs) |
Std (μs) |
Min (μs) |
Max (μs) |
50% (μs) |
90% (μs) |
99% (μs) |
99.99% (μs) |
99.9999% (μs) |
CPU (%) |
---|---|---|---|---|---|---|---|---|---|---|
32 |
47 |
5.7 |
41 |
107 |
44 |
57 |
63 |
89 |
107 |
|
64 |
47 |
30.8 |
41 |
9803 |
44 |
57 |
64 |
95 |
9803 |
|
128 |
48 |
19.5 |
42 |
8672 |
45 |
58 |
65 |
107 |
8672 |
|
512 |
50 |
11.9 |
43 |
3805 |
47 |
59 |
67 |
98 |
3805 |
|
1024 |
54 |
10.7 |
46 |
2671 |
50 |
62 |
92 |
114 |
2671 |
|
4096 |
65 |
5.6 |
59 |
144 |
64 |
70 |
90 |
118 |
144 |
|
8192 |
81 |
3.6 |
78 |
143 |
81 |
84 |
100 |
136 |
143 |
|
16384 |
194 |
61.0 |
99 |
351 |
194 |
276 |
317 |
341 |
351 |
|
32768 |
333 |
16.9 |
157 |
369 |
323 |
357 |
361 |
366 |
369 |
|
63000 |
341 |
5.8 |
219 |
421 |
340 |
346 |
356 |
406 |
421 |
Reliable
Sample Size (Bytes) |
Avg (μs) |
Std (μs) |
Min (μs) |
Max (μs) |
50% (μs) |
90% (μs) |
99% (μs) |
99.99% (μs) |
99.9999% (μs) |
CPU (%) |
---|---|---|---|---|---|---|---|---|---|---|
32 |
47 |
7.9 |
39 |
126 |
42 |
60 |
63 |
120 |
126 |
|
64 |
46 |
8.4 |
39 |
127 |
41 |
59 |
69 |
118 |
127 |
|
128 |
52 |
312.6 |
35 |
100100 |
49 |
62 |
73 |
89 |
100100 |
|
512 |
50 |
7.0 |
41 |
173 |
47 |
61 |
63 |
69 |
173 |
|
1024 |
51 |
6.5 |
43 |
95 |
48 |
61 |
63 |
70 |
95 |
|
4096 |
62 |
1.4 |
58 |
101 |
62 |
63 |
66 |
74 |
101 |
|
8192 |
89 |
8.3 |
75 |
126 |
94 |
96 |
97 |
105 |
126 |
|
16384 |
194 |
42.9 |
97 |
344 |
183 |
249 |
321 |
327 |
344 |
|
32768 |
321 |
3.3 |
167 |
353 |
321 |
323 |
325 |
341 |
353 |
|
63000 |
377 |
5.5 |
210 |
391 |
377 |
380 |
382 |
389 |
391 |
Test Hardware
The following hardware was used to perform these tests:
Linux Nodes
Dell R340 Servers (13 Units)
Processor: Intel Xeon E-2278G (3.4-5GHz, 8c/16t, 16MB cache, 2 memory channels @2666MHz)
RAM: 4x 16GB 2666MHz DIMM (64GB RAM)
HD: 480GB SATA SSD
NIC 1: Intel 710 dual port 10Gbps SFP
OS: Ubuntu 20.04 -- gcc 9.3.0
Switch
Dell 2048 -- 10Gbps switch (10Gbps and 1Gbps interfaces)
The graph below shows the expected throughput behavior when performing a 1-1 communication between a Publisher, a Routing Service, and a Subscriber running in three Linux nodes in a 1Gbps network. The numbers are for best-effort as well as strict reliable reliability scenarios.
Note
By default, RTI Perftest enables batching when performing a Maximum Throughput test. The batching feature allows sending more than one data sample per RTPS packet, improving network performance for small data sizes. See the RTI Connext Core Libraries User’s Manual for more information on batching.
The batch maximum size is set by RTI Perftest to be 8192 bytes; after 8192 bytes, batching is not enabled.
Detailed Statistics
This table contains the raw numbers presented by RTI Perftest. These numbers are the exact output with no further processing.
Best Effort
Sample Size (Bytes) |
Total Samples |
Avg Samples/s |
Avg Mbps |
Lost Samples |
Lost Samples (%) |
CPU (%) |
---|---|---|---|---|---|---|
32 |
6747392 |
224688 |
57.5 |
47125248 |
87.48 |
|
64 |
6920832 |
230453 |
118.0 |
45027435 |
86.68 |
|
128 |
6888649 |
229352 |
234.9 |
41392704 |
85.73 |
|
512 |
6385376 |
212139 |
968.9 |
30000656 |
82.45 |
|
1024 |
5911452 |
196909 |
1813.1 |
20732184 |
77.81 |
|
4096 |
5893528 |
196231 |
6430.1 |
3032924 |
33.98 |
|
8192 |
4495430 |
149819 |
9818.6 |
0 |
0.00 |
|
16384 |
2260179 |
75329 |
9873.6 |
31 |
0.00 |
|
32768 |
1133222 |
37769 |
9901.1 |
14 |
0.00 |
|
63000 |
590034 |
19665 |
9911.5 |
9 |
0.00 |
Reliable
Sample Size (Bytes) |
Total Samples |
Avg Samples/s |
Avg Mbps |
Lost Samples |
Lost Samples (%) |
CPU (%) |
---|---|---|---|---|---|---|
32 |
4529665 |
150501 |
38.5 |
0 |
0.00 |
|
64 |
4410497 |
146732 |
75.1 |
0 |
0.00 |
|
128 |
4383885 |
145911 |
149.4 |
0 |
0.00 |
|
512 |
4456353 |
148344 |
607.6 |
0 |
0.00 |
|
1024 |
4325905 |
143964 |
1179.4 |
0 |
0.00 |
|
4096 |
3957422 |
131696 |
4315.4 |
0 |
0.00 |
|
8192 |
3491797 |
116225 |
7617.0 |
0 |
0.00 |
|
16384 |
2256941 |
75230 |
9860.6 |
0 |
0.00 |
|
32768 |
1132571 |
37748 |
9895.6 |
0 |
0.00 |
|
63000 |
589861 |
19660 |
9908.9 |
0 |
0.00 |
Test Hardware
The following hardware was used to perform these tests:
Linux Nodes
Dell R340 Servers (13 Units)
Processor: Intel Xeon E-2278G (3.4-5GHz, 8c/16t, 16MB cache, 2 memory channels @2666MHz)
RAM: 4x 16GB 2666MHz DIMM (64GB RAM)
HD: 480GB SATA SSD
NIC 1: Intel 710 dual port 10Gbps SFP
OS: Ubuntu 20.04 -- gcc 9.3.0
Switch
Dell 2048 -- 10Gbps switch (10Gbps and 1Gbps interfaces)