news 2026/4/16 16:37:15

【飞腾平台实时Linux方案系列】第二十一篇 - 飞腾平台实时Linux性能测试与优化总结。

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【飞腾平台实时Linux方案系列】第二十一篇 - 飞腾平台实时Linux性能测试与优化总结。

一、简介:为什么要给飞腾做“实时体检”?

  • 国产芯趋势:能源 PLC、矿山集控、车载 ECC 纷纷选用飞腾(FT-1500A/FT-2000/4),但芯片微架构、Cache 拓扑与 x86 不同,默认内核配置无法发挥实时性能

  • 痛点场景

    • 变电站测控装置:GOOSE 消息 1 ms 内不响应 → 保护误动。

    • 轨道计轴系统:中断延迟 > 50 μs → 丢轴计数,影响行车安全。

  • 掌握测试+优化技能= 让“国产芯+实时Linux”真正落地,替代传统 DSP/FPGA 方案,硬件成本降 40%,供应链安全可控


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

关键词一句话说明飞腾平台注意点
PREEMPT_RTLinux 实时补丁,将中断线程化、自旋锁变互斥锁需配合飞腾 ARCH=arm64 配置
cyclictest实时延迟基准工具,测 IRQ→任务唤醒时间本文用 RT-Tests 2.5
调度延迟任务就绪→获得 CPU 的间隔,SIL 2 要求 < 100 μs受 CPU 变频、NUMA 影响
DCVS飞腾动态调频,默认开启 → 延迟抖动大测试前建议锁定频率
可伸缩拓扑飞腾 64 核采用 4 × Clustertaskset 绑核时避免跨 Cluster

三、环境准备:10 分钟搭好“飞腾测试工作台”

1. 硬件

  • CPU:飞腾 FT-2000/4 或 FT-1500A(arm64 v8)

  • 内存 ≥ 8 GB,SSD ≥ 128 GB,预留网口 × 2(千兆+千兆)

2. 软件

组件版本安装命令
OSUbuntu 20.04 for ARM飞腾官网镜像
实时内核linux-5.15.71-rt53见下文一键脚本
测试套件rt-tests 2.5apt install rt-tests
性能工具perf, tuna, tasksetapt install linux-tools-common
交叉编译gcc-aarch64-linux-gnu可选,嵌入式板子

3. 一键安装 RT 内核(可复制)

#!/bin/bash # install_ft_rt.sh set -e VER=5.15.71 RT_PATCH=patch-5.15.71-rt53.patch.xz wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v${VER}/linux-${VER}.tar.xz wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v${VER}/${RT_PATCH} tar -xf linux-${VER}.tar.xz cd linux-${VER} xzcat ../${RT_PATCH} | patch -p1 cp /boot/config-$(uname -r) .config make ARCH=arm64 olddefconfig ./scripts/config --set-val CONFIG_PREEMPT_RT y make ARCH=arm64 -j$(nproc) deb-pkg sudo dpkg -i ../linux-*.deb sudo reboot

重启选 RT 内核进入,确认:

uname -r # 5.15.71-rt53

4. 创建实验目录

mkdir -p ~/ft-rt-bench && cd ~/ft-rt-bench

四、应用场景(300 字)

某 220 kV 智能变电站采用飞腾 FT-2000/4 作为就地测控单元,运行 PREEMPT_RT Linux。系统需同时完成:

  1. GOOSE 报文硬实时接收→解析→出口继电器,端到端 ≤ 1 ms;

  2. 1588 对时误差 < 250 ns;

  3. 后台 104 规约并发 256 台客户端,CPU 占用 < 60%。

通过本文测试脚本,现场工程师 30 分钟输出“延迟-负载”曲线,发现 DCVS 导致 0.8 ms 抖动;锁定频率并绑核后,延迟降至 82 μs,顺利通过电网科院型式试验,实现国产芯替代 DSP 方案,单装置成本下降 35%,且供应链完全自主可控。


五、实际案例与步骤:从“跑基准”到“出报告”

每条命令可直接复制,保存为run.sh一键执行。


5.1 基础信息采集

#!/bin/bash # info.sh echo "=== CPU 信息 ===" lscpu | grep -E "Model name|Architecture|CPU\\(s\\)" echo "=== 内核配置 ===" grep PREEMPT /boot/config-$(uname -r) echo "=== 当前频率 ===" cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_cur_freq

作用:记录硬件与内核版本,报告首页贴截图。


5.2 实时延迟测试(cyclictest)

# latency.sh sudo cyclictest -p99 -i100 -d60s -m -Sp90 -q | tee cyclictest.log

参数说明

  • -p99最高优先级,避免被其他任务抢占

  • -d60s采样 60 秒,现场可延长到 600 s

  • -m锁内存,防止 swap 干扰

结果示例

T: 0 ( 1234) P:99 I:100 C: 600000 Min: 12 Act: 18 Avg: 20 Max: 82

Max=82 μs < 100 μs → 满足 SIL 2 要求。


5.3 负载压力叠加(stress-ng)

# load.sh stress-ng --cpu 4 --io 2 --vm 2 --vm-bytes 256M --timeout 60s & sudo cyclictest -p99 -i100 -d60s -m -q | tee cyclictest_load.log killall stress-ng

观察:满载下 Max 延迟是否仍 < 100 μs;若超标 → 进入第 6 节优化。


5.4 网络/IO 性能

A. 千兆网小包转发
# 需要另一台 PC 打流 sudo ethtool -G eth0 rx 4096 tx 4096 # 增大环形缓冲区 sudo pktgen_sample.sh 1000mb 1000000 # 发送 1M 个 64 B 包
B. 磁盘 IO 延迟(实时日志)
sudo fio --name=rt-log --rw=randwrite --bs=4k --size=100m --direct=1 \ --ioengine=libaio --iodepth=1 --runtime=60s --group_reporting

关注clat平均延迟,> 2 ms 需换 SSD 或 ext4 → xfs。


5.5 一键生成 HTML 报告

# report.sh gnuplot -e "set terminal html; set output 'latency.html'; plot 'cyclictest.log' using 2 title 'Latency/us'" echo "报告已生成,打开 latency.html 查看"

六、性能优化方法与最佳实践

  1. 关闭 CPU 变频

    echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
  2. 隔离核
    内核参数isolcpus=2,3+rcu_nocbs=2,3
    实时任务绑定:taskset -c 2 ./your_rt_app

  3. 中断亲和

    echo 1 > /proc/irq/24/smp_affinity # 把网卡中断绑到 Core0,远离实时核
  4. 禁用不必要驱动
    内核配置关闭CONFIG_USB_CONFIGFS_F_FS,减少关中断时间。

  5. 使用tuna图形化调整

    sudo tuna -c 2-3 -i eth0 -x # 把 eth0 中断从 2-3 移走
  6. 大页+锁内存

    mlockall(MCL_CURRENT | MCL_FUTURE);
  7. 日志异步化
    实时线程不写磁盘;使用ringbuf + low-prio后台线程批量落盘。


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

问题现象解决
cyclictest Max > 1 ms变频未关确认 governor=performance
网络小包丢包rx_errors 增加增大 ring buffer + 绑中断
报告中文乱码HTML 无 meta<meta charset="utf-8">
隔离核后 SSH 连不上孤立核含 Core0留 Core0 给系统, isolcpus=2,3
fio 报“Read-only”在容器内宿主机或 --privileged 启动

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

飞腾实时性能测试 ├─ 环境:RT 内核 + 关闭变频 + 隔离核 ├─ 工具:cyclictest + stress-ng + fio + tuna ├─ 指标:延迟 < 100 μs,网络不丢包,IO clat < 2 ms ├─ 优化:锁内存、大页、中断亲和、驱动裁剪 └─ 报告:HTML 可视化 + 版本记录

国产芯 + 实时 Linux 不再是“能用”,而是“好用”且“可控”。
把本文脚本 push 到你的 GitLab,下次面对电网、矿山、轨交客户,只需 30 分钟就能交出一份带数字签名的性能报告——让“自主可控”真正落地,也让飞腾平台在关键基础设施中跑得更快、更稳、更安全!

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

小白也能懂!AI 新时代的“三驾马车”:LLM、RAG 和 Agent!

今天&#xff0c;咱们要聊聊当下AI圈子里最时髦、最炸场的三个新概念&#xff1a;大语言模型 (LLM)、检索增强生成 (RAG) 和 AI智能体 (Agent)。经常看新闻的朋友肯定被这几个缩写绕晕了&#xff0c;觉得深不可测。别慌&#xff01;今天我依然用最接地气的大白话&#xff0c;带…

作者头像 李华
网站建设 2026/4/16 12:00:50

YOLOv8 实战优化:引入 Inner-IoU 的损失函数改进与精度提升

文章目录 目标检测损失函数革新:Inner-IoU 助力 YOLOv8 精度飙升实战教程 一、Inner-IoU 核心原理:辅助边框如何打破 IoU 瓶颈? 1. 传统 IoU 损失的局限性 2. Inner-IoU 的创新设计:辅助边框的魔力 3. 实验效果:用数据说话 二、Inner-IoU 集成到 YOLOv8 全流程:从代码修改…

作者头像 李华
网站建设 2026/4/16 12:05:45

学术图表变形记:书匠策AI如何用“可视化魔法”让数据开口说话——科研绘图从“苦力活”到“创意秀”的终极进化指南

在学术圈&#xff0c;一张图的价值往往胜过千言万语。但你是否经历过这样的崩溃瞬间&#xff1a;熬夜用Excel调整柱状图颜色&#xff0c;结果期刊要求CMYK模式&#xff1b;想展示教育政策的空间影响&#xff0c;却只能用静态地图勉强示意&#xff1b;跨学科研究需同时满足神经科…

作者头像 李华
网站建设 2026/4/16 13:34:51

C盘的Windows文件夹太大,里面的子文件夹哪些可以清理?

theme: default themeName: 默认主题如果你注意到电脑的c盘空间越来越小&#xff0c;你可能会发现windows文件夹往往是最大的元凶&#xff0c;这个重要的系统文件夹包含了操作系统运行所需的一切&#xff0c;但随着时间的推移&#xff0c;它会积累一些不再需要的文件&#xff0…

作者头像 李华
网站建设 2026/4/16 12:45:38

你的论文有novelty吗?复旦搞了个顶会论文查新系统

复旦大学 NLP 研究团队与其此前孵化的学术搜索平台 WisPaper 展开合作&#xff0c;共同研发了 OpenNovelty——一个基于大语言模型、强调证据与可验证性的自动化新颖性分析系统。ICLR 2026 的 Rebuttal 结束了。当 OpenReview 上的喧嚣散去&#xff0c;我们发现&#xff0c;作者…

作者头像 李华