AimRT 性能测试
序言
AimRT 的通信层由插件实现,官方支持 iceoryx、ROS2、Zenoh、Http、Grpc、Mqtt 等通信插件,覆盖常见的端、云通信场景。这些插件可提供发布-订阅(Channel)和请求-响应(Rpc)两种常见的通信模式以实现本机和跨机的进程间通信。
本文档对于 AimRT 官方提供的各个核心组件进行了性能上的测试。请注意,测试结果受测试平台、网络等外部因素影响,仅用于展示相对性能。
测试条目
单机性能测试
日志性能测试
Channel 后端性能测试
Rpc 后端性能测试
多机性能测试
Channel 后端性能测试
Rpc后端性能测试
测试环境
架构 |
操作系统 |
系统架构 |
CPU |
---|---|---|---|
主机1 |
GNU/Linux |
x86_64 |
13th Gen Intel® Core™ i5-1350P - CPU(s):16 |
主机2 |
GNU/Linux |
x86_64 |
13th Gen Intel® Core™ i5-1350P - CPU(s):16 |
测试结果
单机性能测试
Logger 性能测试
测试条目:
测试环境:主机1·x86
测试目的:日志打印性能测试 (平均时延 VS 日志尺寸)
测试结果:
Log Data Size (bytes) |
32 |
64 |
128 |
256 |
512 |
1024 |
2048 |
4096 |
8192 |
---|---|---|---|---|---|---|---|---|---|
Avg Latency(ns) |
235 |
735 |
393 |
568 |
819 |
839 |
4352 |
4407 |
4362 |
Channel 后端性能测试
测试条目1:
测试环境:主机1·x86 (3核)
测试目的:单机跨进程 Channel 后端通信测试(平均时延 VS 包尺寸)
测试配置:channel_frequency=1 kHz, topic_number=1
测试结果:
测试条目2:
测试环境:主机1·x86 (3核)
测试目的:单机跨进程 Channel 后端通信测试(平均时延 VS 话题数)
测试配置:channel_frequency=1 kHz, pkg_size=1 k bytes
测试结果:
汇总:
ID |
Backend Type |
Pkg Size |
Topic num |
Avg Latency |
Max Latency |
Loss Rate |
Avg CPU Usage |
---|---|---|---|---|---|---|---|
1 |
iceoryx |
512 |
1 |
33.78 |
556.791 |
0 |
0.8/0.1 |
2 |
ros2 |
512 |
1 |
78.294 |
601.76 |
0 |
3.1/1.2 |
3 |
zenoh |
512 |
1 |
86.67 |
3479.172 |
0 |
0.9/0.3 |
4 |
iceoryx |
2048 |
1 |
33.755 |
368.843 |
0 |
0.9/0.3 |
5 |
ros2 |
2048 |
1 |
78.294 |
601.76 |
0 |
3.5/3.3 |
6 |
zenoh |
2048 |
1 |
89.812 |
2265.741 |
0 |
1.3/1.4 |
7 |
iceoryx |
8192 |
1 |
35.327 |
372.595 |
0 |
1.0/0.4 |
8 |
ros2 |
8192 |
1 |
91.106 |
898.042 |
0 |
3.6/4.2 |
9 |
zenoh |
8192 |
1 |
90.438 |
1222.726 |
0 |
2.0 /1.5 |
10 |
iceoryx |
1024 |
1 |
33.108 |
325.33 |
0 |
0.9 /0.8 |
11 |
ros2 |
1024 |
1 |
83.337 |
1223.164 |
0 |
3.4/3.2 |
12 |
zenoh |
1024 |
1 |
88.695 |
1208.31 |
0 |
1.7/1.4 |
13 |
iceoryx |
1024 |
4 |
23.417 |
458.296 |
0 |
1.5/1.5 |
14 |
ros2 |
1024 |
4 |
89.216 |
1965.28 |
0 |
4.4/ 11.7 |
15 |
zenoh |
1024 |
4 |
6243.743 |
12750.598 |
0 |
2.5/1.6 |
16 |
iceoryx |
1024 |
8 |
19.884 |
320.847 |
0 |
2.8/2.1 |
17 |
ros2 |
1024 |
8 |
70.075 |
3913.944 |
0 |
7.5/13.6 |
18 |
zenoh |
1024 |
8 |
3237.104 |
6913.596 |
0 |
3.0 /1.8 |
Rpc 后端性能测试
测试条目1:
测试环境:主机 1·x86 (3核)
测试目的:单机跨进程 Rpc 后端通信测试(平均时延 VS 数据包尺寸)
测试配置:paraller_number=1
测试结果:
测试条目2:
测试环境:主机1·x86 (3核)
测试目的:单机跨进程Rpc后端通信测试(QPS VS 数据包尺寸)
测试配置: paraller_number=1
测试结果:
测试条目3:
测试环境:主机1·x86 (3核)
测试目的:单机跨进程 Rpc 后端通信测试(平均时延 VS 并行数)
测试配置:Rpc_frequency=1 kHz, pkg_size=1 k bytes
测试结果:
汇总:
压测模式
ID |
Backend Type |
Pkg Size |
Topic num |
Avg Latency |
Max Latency |
QPS |
Error Rate |
Avg CPU Usage |
---|---|---|---|---|---|---|---|---|
1 |
grpc |
512 |
1 |
102.385 |
1015.132 |
5668.934 |
0 |
11.2/6.6 |
2 |
http |
512 |
1 |
137.783 |
646.192 |
7032.348 |
0 |
33.9/6.9 |
3 |
ros2 |
512 |
1 |
710.772 |
787.366 |
784.190 |
0 |
23.1/4.1 |
4 |
mqtt |
512 |
1 |
227.804 |
99936.432 |
4295.532 |
0 |
13.4/2.3 |
5 |
grpc |
2048 |
1 |
172.007 |
846.916 |
5662.514 |
0 |
21.4/4.4 |
6 |
http |
2048 |
1 |
137.435 |
620.138 |
7062.146 |
0 |
47.5/14.8 |
7 |
ros2 |
2048 |
1 |
72.425 |
687.575 |
783.330 |
0 |
28.4/7.7 |
8 |
mqtt |
2048 |
1 |
243.326 |
100343.387 |
4022.526 |
0 |
18.6/6.1 |
固定频率模式
ID |
Backend Type |
Pkg Size |
Topic num |
Avg Latency |
Max Latency |
Error Rate |
Avg CPU Usage |
---|---|---|---|---|---|---|---|
1 |
grpc |
1024 |
1 |
274.102 |
1135.26 |
0 |
28.7/7.3 |
2 |
http |
1024 |
1 |
253.347 |
916.773 |
0 |
44.3/16.8 |
3 |
ros2 |
1024 |
1 |
93.259 |
1081.053 |
0 |
27.3/6.2 |
4 |
mqtt |
1024 |
1 |
399.444 |
100581.09 |
0 |
17.5/11.1 |
5 |
grpc |
1024 |
4 |
326.857 |
3131.102 |
0 |
19.8/12.6 |
6 |
http |
1024 |
4 |
272.115 |
1713.79 |
0 |
46.3/26.3 |
7 |
ros2 |
1024 |
4 |
112.685 |
2050.94 |
0 |
40.6/19.6 |
8 |
mqtt |
1024 |
4 |
681.431 |
99994.365 |
0 |
26.0/14.0 |
9 |
grpc |
1024 |
8 |
830.776 |
4318.728 |
0 |
31.1/16.6 |
10 |
http |
1024 |
8 |
215.188 |
3961.397 |
0 |
51.2/29.9 |
11 |
ros2 |
1024 |
8 |
149.772 |
3380.315 |
0 |
41.1/20.2 |
12 |
mqtt |
1024 |
8 |
755.568 |
98599.196 |
0 |
28.8/15.2 |
多机性能测试
主机1 to 主机2 Channel 后端性能测试
测试条目1:
测试环境:主机1·x86 (3核), 主机2·x86 (3核)
测试目的:跨机跨进程 Channel 后端通信测试(平均时延 VS 包尺寸)
测试配置:channel_frequency=1 kHz, topic_number=1
测试结果:
测试条目2:
测试环境:主机1·x86 (3核), 主机2·x86 (3核)
测试目的:跨机跨进程 Channel 后端通信测试(平均时延 VS 话题数)
测试配置:channel_frequency=1 kHz, pkg_size=1 k bytes
测试结果:
汇总:
ID |
Backend Type |
Pkg Size |
Topic num |
Avg Latency |
Max Latency |
Loss Rate |
---|---|---|---|---|---|---|
1 |
mqtt |
512 |
1 |
9436.628 |
1922348.666 |
0 |
2 |
zenoh |
512 |
1 |
9749.743 |
225513.208 |
0 |
3 |
mqtt |
2048 |
1 |
21715.483 |
87612.922 |
0 |
4 |
zenoh |
2048 |
1 |
15313.238 |
130844.909 |
0 |
5 |
mqtt |
8192 |
1 |
1728639.372 |
4060503.312 |
0 |
6 |
zenoh |
8192 |
1 |
67700.703 |
84407.91 |
0 |
7 |
mqtt |
1024 |
1 |
30003.15 |
143020.411 |
0 |
8 |
zenoh |
1024 |
1 |
12590.826 |
78070.239 |
0 |
9 |
mqtt |
1024 |
4 |
10815.251 |
109914.215 |
0 |
10 |
zenoh |
1024 |
4 |
13537.918 |
98343.269 |
0 |
11 |
mqtt |
1024 |
8 |
2281671.772 |
4289304.104 |
0 |
12 |
zenoh |
1024 |
8 |
262563.641 |
449324.47 |
0 |
主机1 to 主机2 Rpc 后端性能测试
测试条目1:
测试环境:主机1·x86 (3核), 主机2·x86 (3核)
测试目的:x86_to_X86 跨机跨进程 Rpc 后端通信测试(平均时延 VS 数据包尺寸)
测试配置:paraller_number=1
测试结果:
测试条目2:
测试环境:主机1·x86 (3核), 主机2·x86 (3核)
测试目的:x86_to_X86 跨机跨进程 Rpc 后端通信测试(QPS VS 数据包尺寸)
测试配置:paraller_number=1
测试结果:
测试条目3:
测试环境:主机1·x86 (3核), 主机2·x86 (3核)
测试目的:x86_to_X86 跨机跨进程 Rpc 后端通信测试(平均时延 VS 并行数)
测试配置:Rpc_frequency=1 kHz, pkg_size=1 k bytes
测试结果:
汇总:
压测模式
ID |
Backend Type |
Pkg Size |
Topic num |
Avg Latency |
Max Latency |
QPS |
Error Rate |
---|---|---|---|---|---|---|---|
1 |
grpc |
512 |
1 |
4924.824 |
322766.91 |
202.741 |
0 |
2 |
http |
512 |
1 |
6284.018 |
324016.359 |
158.825 |
0 |
3 |
mqtt |
512 |
1 |
4702.392 |
320198.678 |
212.116 |
0 |
4 |
grpc |
2048 |
1 |
5704.31 |
403065.412 |
175.082 |
0 |
5 |
http |
2048 |
1 |
5830.839 |
222680.914 |
171.156 |
0 |
6 |
mqtt |
2048 |
1 |
4726.14 |
321514.163 |
211.041 |
0 |
7 |
grpc |
8192 |
1 |
7120.05 |
315765.656 |
140.295 |
0 |
8 |
http |
8192 |
1 |
8134.13 |
335106.68 |
122.756 |
0 |
9 |
mqtt |
8192 |
1 |
5684.013 |
165831.057 |
175.530 |
0 |
固定频率模式
ID |
Backend Type |
Pkg Size |
Topic num |
Avg Latency |
Max Latency |
Error Rate |
---|---|---|---|---|---|---|
1 |
grpc |
1024 |
1 |
3800.001 |
83298.271 |
0 |
2 |
http |
1024 |
1 |
4906.788 |
238306.281 |
0 |
3 |
mqtt |
1024 |
1 |
3979.662 |
117279.111 |
0 |
4 |
grpc |
1024 |
4 |
6329.525 |
315825.548 |
0 |
5 |
http |
1024 |
4 |
9002.289 |
614524.388 |
0 |
6 |
mqtt |
1024 |
4 |
12371.313 |
327013.301 |
0 |
7 |
grpc |
1024 |
8 |
7574.52 |
881297.081 |
0 |
8 |
http |
1024 |
8 |
8278.314 |
904195.888 |
0 |
9 |
mqtt |
1024 |
8 |
11336.935 |
324605.52 |
0 |