5.2.5 数据通信
零拷贝
功能介绍
TogetheROS.Bot提供了灵活、高效的零拷贝功能,可以显著降低大尺寸数据的通信延时和CPU占用。tros.b通过集成performance_test工具,可以方便的评测开启零拷贝前后的性能差异。performance_test工具能够实现sub数量、消息大小、QoS等参数配置,方便评估不同场景下的通信性能,主要性能指标如下:
- 时延(latency):对应消息从pub到sub的传输时间
- CPU使用率(CPU usage):通信活动所占CPU使用百分比
- 驻留内存(resident memory):包括堆分配内存、共享内存以及用于系统内部的栈内存
- 样本统计(sample statistics):包括每次实验发送、接收以及丢失的消息数量
代码仓库:
- https://github.com/D-Robotics/rclcpp
- https://github.com/D-Robotics/rcl_interfaces
- https://github.com/D-Robotics/benchmark
info
- tros.b Foxy版本基于ROS2 Foxy新增了“zero-copy”功能。
- tros.b Humble版本使用的是ROS2 Humble的“zero-copy”功能。
支持平台
平台 | 运行方式 |
---|---|
RDK X3, RDK X3 Module | Ubuntu 20.04 (Foxy), Ubuntu 22.04 (Humble) |
RDK X5, RDK X5 Module, RDK S100 | Ubuntu 22.04 (Humble) |
caution
RDK Ultra平台支持零拷贝数据通信,暂未提供零拷贝性能指标测试安装包。
准备工作
RDK
-
开始测试前,需要将RDK调整为性能模型,以保证测试结果准确性。命令如下:
echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
更多配置说明参考系统配置章节。
-
RDK已成功安装performance_test工具包,安装命令:
- Foxy
- Humble
sudo apt update
sudo apt install tros-performance-testsudo apt update
sudo apt install tros-humble-performance-test