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

    • 测试结果:

    X86_Channel_Average_Latency_vs_Package_Size

  • 测试条目2:

    • 测试环境:主机1·x86 (3核)

    • 测试目的:单机跨进程 Channel 后端通信测试(平均时延 VS 话题数)

    • 测试配置:channel_frequency=1 kHz, pkg_size=1 k bytes

    • 测试结果:

    X86_Channel_Average_Latency_vs_Package_Size

  • 汇总:

ID

Backend Type

Pkg Size
(bytes)

Topic num

Avg Latency
(us)

Max Latency
(us)

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

    • 测试结果:

    X86_Channel_Average_Latency_vs_Package_Size

  • 测试条目2:

  • 测试环境:主机1·x86 (3核)

  • 测试目的:单机跨进程Rpc后端通信测试(QPS VS 数据包尺寸)

  • 测试配置: paraller_number=1

  • 测试结果:

X86_Channel_Average_Latency_vs_Package_Size

  • 测试条目3:

    • 测试环境:主机1·x86 (3核)

    • 测试目的:单机跨进程 Rpc 后端通信测试(平均时延 VS 并行数)

    • 测试配置:Rpc_frequency=1 kHz, pkg_size=1 k bytes

    • 测试结果:

    X86_Channel_Average_Latency_vs_Package_Size

  • 汇总:

压测模式

ID

Backend Type

Pkg Size
(bytes)

Topic num

Avg Latency
(us)

Max Latency
(us)

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
(bytes)

Topic num

Avg Latency
(us)

Max Latency
(us)

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

    • 测试结果:

    X86_Channel_Average_Latency_vs_Package_Size

  • 测试条目2:

    • 测试环境:主机1·x86 (3核), 主机2·x86 (3核)

    • 测试目的:跨机跨进程 Channel 后端通信测试(平均时延 VS 话题数)

    • 测试配置:channel_frequency=1 kHz, pkg_size=1 k bytes

    • 测试结果:

    X86_Channel_Average_Latency_vs_Package_Size

  • 汇总:

ID

Backend Type

Pkg Size
(bytes)

Topic num

Avg Latency
(us)

Max Latency
(us)

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

    • 测试结果:

    X86_Channel_Average_Latency_vs_Package_Size

  • 测试条目2:

    • 测试环境:主机1·x86 (3核), 主机2·x86 (3核)

    • 测试目的:x86_to_X86 跨机跨进程 Rpc 后端通信测试(QPS VS 数据包尺寸)

    • 测试配置:paraller_number=1

    • 测试结果:

    X86_Channel_Average_Latency_vs_Package_Size

  • 测试条目3:

    • 测试环境:主机1·x86 (3核), 主机2·x86 (3核)

    • 测试目的:x86_to_X86 跨机跨进程 Rpc 后端通信测试(平均时延 VS 并行数)

    • 测试配置:Rpc_frequency=1 kHz, pkg_size=1 k bytes

    • 测试结果:

    X86_Channel_Average_Latency_vs_Package_Size

  • 汇总:

压测模式

ID

Backend Type

Pkg Size
(bytes)

Topic num

Avg Latency
(us)

Max Latency
(us)

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
(bytes)

Topic num

Avg Latency
(us)

Max Latency
(us)

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