news 2026/5/1 7:36:52

【瑞芯微平台实时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/5/1 6:29:26

Si8380PF-IU,八通道 24V 数字隔离器

型号介绍今天我要向大家介绍的是 skyworks 的数字隔离器——Si8380PF-IU。 它能够适应各种恶劣的工业环境&#xff0c;例如高温、潮湿、强磁场等&#xff0c;并且具有很长的使用寿命。它就像一位坚毅的战士&#xff0c;无论面对什么样的困难&#xff0c;都能够坚守岗位&#xf…

作者头像 李华
网站建设 2026/4/29 1:32:52

PMP和NPDP到底谁更吃香?

PMP和NPDP的“吃香”程度取决于职业方向与行业需求&#xff0c;具体分析如下&#xff1a;一、若职业方向聚焦产品开发与创新&#xff0c;NPDP更吃香核心价值&#xff1a;NPDP是国际公认的新产品开发领域权威认证&#xff0c;提供系统化的产品开发方法论&#xff0c;涵盖市场研究…

作者头像 李华
网站建设 2026/4/30 23:35:04

动态对象感知与态势表达技术指标体系——面向仓储三维空间管控的可计算态势能力评价方法

动态对象感知与态势表达技术指标体系 ——面向仓储三维空间管控的可计算态势能力评价方法 摘要 在以视频为主要感知手段的仓储安全与运行管理体系中&#xff0c;“是否具备动态对象感知能力”和“是否能够表达真实运行态势”已成为衡量系统技术先进性与实用价值的关键标准。然…

作者头像 李华
网站建设 2026/5/1 4:02:03

企业级RAG教程 | langchain+AWS Bedrock+Zilliz,适合80%企业

放眼当下&#xff0c;RAG已经成了90%企业落地大模型的技术首选。但问题是&#xff0c;从LLM到embedding到框架&#xff0c;再到向量数据库&#xff0c;基础组件已经多到不胜枚举。 于是一个尴尬的情况出现了&#xff1a;教程和组件都很好&#xff0c;但就是和企业的已有资源不…

作者头像 李华
网站建设 2026/5/1 5:06:51

LangChain+LLM本地知识库问答:从企业单文档问答到批量文档问答

过去半年&#xff0c;随着ChatGPT的火爆&#xff0c;直接带火了整个LLM这个方向&#xff0c;然LLM毕竟更多是基于过去的经验数据预训练而来&#xff0c;没法获取最新的知识&#xff0c;以及各企业私有的知识 为了获取最新的知识&#xff0c;ChatGPT plus版集成了bing搜索的功能…

作者头像 李华
网站建设 2026/5/1 5:07:28

学霸同款8个降AI率工具 千笔·降AIGC助手解决论文AI痕迹难题

AI降重工具的崛起与论文写作的新可能 在当前学术研究日益依赖AI技术的背景下&#xff0c;越来越多的研究生开始关注论文中“**AIGC率**”的问题。无论是AI生成内容的痕迹&#xff0c;还是查重系统对相似度的严格检测&#xff0c;都让许多学生感到困扰。然而&#xff0c;随着一系…

作者头像 李华