news 2026/4/18 10:33:01

【瑞芯微平台实时Linux方案系列】第二十二篇 - 瑞芯微平台实时Linux监控体系构建

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【瑞芯微平台实时Linux方案系列】第二十二篇 - 瑞芯微平台实时Linux监控体系构建

一、简介:为什么必须“看得见”实时性?

  • 工业视觉、运动控制对延迟<1 ms零容忍,但“能跑”≠“实时”。

  • 客户现场常出现:偶发卡顿→无数据→靠猜→通宵调试

  • 轻量化监控 = 实时采集延迟/CPU/内存→秒级告警,问题复现率↑90%,定位时间↓80%。

掌握本文方案,即可为瑞芯微平台打造“边缘实时之眼”,让SIL/CE认证审核有数据可追。


二、核心概念:5 个关键词先搞懂

关键词一句话瑞芯微场景
PREEMPT_RTLinux 实时补丁,将中断、自旋锁可抢占化RK3568 官方 SDK 已合入
cyclictest测量“ timer → 线程唤醒”延迟的黄金工具用于验证监控数据准确性
kmon轻量级内核日志守护,支持阈值告警替代 rsyslog,资源 <1 MB
sysfs内核导出指标接口,如/sys/kernel/debug/rt_latency零开销采集
MQTT轻量消息队列,边缘→云端上报4G/以太网均适用

三、环境准备:10 分钟搭好实验台

1. 硬件

  • RK3568 开发板(2 GB RAM)(RK3588 同理)

  • SD 卡 ≥16 GB,千兆网线,TTL 串口线

2. 软件

组件版本获取方式
瑞芯微Linux SDKv1.2.0a官方 Gitee
实时内核linux-5.10-rtSDK 已集成
  • 主机交叉编译器:aarch64-linux-gnu-gcc 9.3

  • 一键装依赖(Ubuntu 20.04 主机):

sudo apt install gcc-aarch64-linux-gnu build-essential \ git cmake ninja-build

3. 烧录 & 启动

# SDK 自带脚本 ./build.sh kernel && ./build.sh firmware sudo upgrade_tool ul MiniLoaderAll.bin sudo upgrade_tool di -k rt-boot.img

串口出现PREEMPT_RT字样即成功。


四、应用场景(300 字):边缘视觉质检机

某饮料厂产线 600 瓶/分钟,每瓶拍摄 3 张图,AI 推理要求总延迟 ≤ 200 ms。

  • 硬件:RK3568 + USB3.0 相机 + 4G 模块

  • 软件:PREEMPT_RT + OpenCV + Tengine
    痛点:偶发拍照重影,怀疑 AI 延迟合格但图像触发信号延迟抖动
    方案:本文监控体系实时采集:

  1. GPIO 触发→用户态时间戳差(<1 ms 为 OK)

  2. cyclictest 后台采样,每 1 s 上报 Max 延迟

  3. 延迟 > 800 μs 触发 MQTT 告警,云端推送到手机
    上线 1 周即定位到USB 驱动在 82 ℃ 时 rt_latency 突增 3 ms,通过降频+散热解决,重影率从 0.3% 降至 0.01%


五、实际案例与步骤:30 分钟搭完“边缘实时之眼”

所有脚本放~/rt-monitor,路径统一,可复制即用。


5.1 步骤 1 - 采集层:cyclictest 常驻服务

# 创建服务文件 sudo tee /etc/systemd/system/rt-latency.service <<'EOF' [Unit] Description=RT latency logger After=network.target [Service] ExecStart=/usr/bin/cyclictest -p95 -m -Sp90 -i200 -d0s \ -l /var/log/rt-latency.log Restart=always CPUAffinity=3 # 绑定大核 [Install] WantedBy=multi-user.target EOF sudo systemctl enable --now rt-latency.service

验证

tail /var/log/rt-latency.log # T: 0 ( 1234) P:95 I:200 C: 10000 Min: 8 Act: 14 Avg: 16 Max: 38

5.2 步骤 2 - 系统指标:sysfs + awk 零开销

# cpu_usage.sh #!/bin/sh while true; do grep -w cpu /proc/stat | awk '{printf "%.1f\n", ($2+$3+$4)/($2+$3+$4+$5)*100}' \ >> /var/log/cpu.log sleep 1 done

后台运行:

chmod +x cpu_usage.sh nohup ./cpu_usage.sh &

5.3 步骤 3 - 内核日志阈值告警:kmon

# 交叉编译 kmon (ARM64) git clone https://github.com/rgoliveira/kmon.git cd kmon && cargo build --release --target aarch64-unknown-linux-gnu # 拷贝到板子 scp target/aarch64-unknown-linux-gnu/release/kmon root@192.168.1.10:/usr/bin/

配置阈值:

sudo kmon set-threshold "sched:.*latency.*>1000" # 单位 μs sudo kmon start --mqtt-broker tcp://mqtt.example.com:1883

5.4 步骤 4 - MQTT 上报(本地→云端)

# mqtt_upload.py import paho.mqtt.client as mqtt import json, time client = mqtt.Client() client.username_pw_set("user", "pass") client.connect("mqtt.example.com", 1883, 60) while True: lat = int(open('/var/log/rt-latency.log').readlines()[-1].split()[-1]) cpu = float(open('/var/log/cpu.log').readlines()[-1]) msg = json.dumps({"lat_us": lat, "cpu": cpu}) client.publish("rk3568/monitor", msg) time.sleep(1)

后台运行:

python3 mqtt_upload.py &

5.5 步骤 5 - Grafana 快速可视化

  • 云侧 Docker 一键启动:

docker run -d -p 3000:3000 \ -e GF_SECURITY_ADMIN_PASSWORD=admin \ grafana/grafana
  • 添加 MQTT 数据源(插件:MQTT-datasource)

  • 导入仪表盘 JSON(文末仓库提供),5 分钟出图。


六、常见问题与解答(FAQ)

问题现象解决
cyclictest Max > 1 ms未关 CPU 变频BIOS 关闭turbo;内核加intel_pstate=disable
kmon 报 “No such file or directory”缺少/dev/kmsg权限chmod 444 /dev/kmsg或加 udev 规则
MQTT 断线后数据丢失网络抖动在 Python 脚本加on_disconnect重连 + 本地环形缓存
串口大量日志影响实时延迟突刺关闭console=ttyS0,115200或提高loglevel=4
监控自身占用 CPU > 5%采集太频繁降低采样周期至 2 s;使用 sysfs 接口替代/proc解析

七、实践建议与最佳实践

  1. 大核绑采集
    CPU3 专门跑 cyclictest & mqtt,不与业务抢占。

  2. 环形缓存 + 压缩
    本地日志logrotate按小时切割,gzip 压缩,保留 7 天。

  3. 阈值分级告警

    • Max > 200 μs:INFO(记录)

    • 500 μs:WARN(短信)

    • 1000 μs:CRITICAL(停机检查)

  4. 监控也要“安全”
    MQTT 使用 TLS + 证书,防止被注入假数据。

  5. 版本化配置
    把 systemd 服务、Python 脚本、Grafana JSON 全部 Git 管理,Tag 随软件一起发布。


八、总结:一张脑图带走全部要点

瑞芯微实时监控体系 ├─ 采集:cyclictest + sysfs + kmon ├─ 传输:MQTT + TLS ├─ 展示:Grafana + 手机告警 ├─ 告警:分级阈值 + 环形缓存 └─ 管理:Git 版本 + systemd 服务

实时监控不是“锦上添花”,而是实时 Linux 的“生命线”。
当你把本文脚本推送到 RK3568 板子,看到 Grafana 曲线稳稳趴在 50 μs 以下时,你会由衷感叹——“实时性,原来真的可以看得见!”

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 8:03:20

明代1582年地图SHP矢量数据

在历史地理研究、GIS空间分析、历史文化传播等领域&#xff0c;明代地图数据始终是不可或缺的核心资源&#xff0c;其中1582年&#xff08;明万历十年&#xff09;这一特定时间节点的地图数据&#xff0c;更是因兼具时代代表性与史料完整性&#xff0c;成为众多研究者的重点关注…

作者头像 李华
网站建设 2026/4/18 8:09:09

融合结构透视与动态目标建模的仓储三维管控体系——基于视频空间解算的仓储运行态势感知与安全治理新模式

融合结构透视与动态目标建模的仓储三维管控体系——基于视频空间解算的仓储运行态势感知与安全治理新模式摘要在现代仓储体系中&#xff0c;空间结构复杂化、作业流程高频化以及人员与车辆混行已成为常态&#xff0c;传统以二维视频监控为核心的管理方式难以支撑对安全、效率与…

作者头像 李华
网站建设 2026/4/18 8:35:21

设计小众书籍推荐工具,输入阅读偏好,推荐小众优质书籍,标注亮点及适合人群,帮读者发现好书,丰富精神世界。

1. 实际应用场景描述场景在信息爆炸的时代&#xff0c;主流书籍榜单被热门畅销书占据&#xff0c;许多小众优质书籍因为缺乏曝光而被埋没。很多读者希望发现独特、有深度、非大众化的好书&#xff0c;但缺乏有效的发现渠道。痛点1. 信息过载&#xff1a;海量书籍中难以筛选。2.…

作者头像 李华
网站建设 2026/4/18 7:54:51

学术导航仪:用书匠策AI解锁期刊论文写作的“星际穿越”

在学术宇宙中&#xff0c;期刊论文是科研成果的“星际坐标”&#xff0c;而写作过程却常被形容为“黑洞探险”——选题迷茫、文献浩如烟海、逻辑混乱、格式繁琐……如今&#xff0c;一款名为书匠策AI的智能工具&#xff0c;正以“学术导航仪”的姿态&#xff0c;为科研人开辟一…

作者头像 李华
网站建设 2026/4/15 22:16:30

学术写作的“未来引擎”:书匠策AI如何重构期刊论文创作生态

在学术写作的江湖里&#xff0c;期刊论文是学者们争夺话语权的“硬通货”。但选题撞车、逻辑混乱、查重焦虑、格式地狱……这些痛点像一堵堵高墙&#xff0c;让无数研究者困在“论文炼狱”中。如今&#xff0c;一款名为书匠策AI的智能工具横空出世&#xff0c;它以“学术外挂”…

作者头像 李华
网站建设 2026/4/18 6:26:29

学术导航仪:书匠策AI如何重塑期刊论文写作的“黄金三角”

在学术研究的赛道上&#xff0c;期刊论文是科研成果的“终极勋章”。然而&#xff0c;从选题到发表&#xff0c;研究者常陷入“信息过载、逻辑混乱、格式错漏”的泥潭。如今&#xff0c;一款名为书匠策AI的智能工具&#xff08;官网&#xff1a;www.shujiangce.com&#xff0c;…

作者头像 李华