一、抖动定义实时抖动 最大调度延迟 − 最小调度延迟单位μs / ns抖动越小 → 时序越稳、伺服 / 运动控制越顺滑二、核心测试工具cyclictest 专属测抖动1. 最简测抖动命令最常用bash运行# 绑定隔离核、最高优先级、锁内存、10分钟、输出微秒 sudo cyclictest -p 99 -a 3 -i 1000 -D 10m -m输出字段Min 最小延迟 Act 当前 Avg 平均 Max 最大抖动 Jitter Max − Min例空载Min2 Max42→ 抖动40μs2. 纳秒高精度测抖动更精准bash运行sudo cyclictest -p 99 -a 3 -i 500 -D 10m -m -N-N结果单位纳秒 ns3. 输出延迟直方图看抖动分布bash运行# 统计最大200μs内所有延迟分布 sudo cyclictest -p 99 -a 3 -i 1000 -D 5m -m -h 200跑完直接打印延迟区间数量直观看出抖动集中区间。4. 只打印最终汇总安静模式bash运行sudo cyclictest -p 99 -a 3 -i 1000 -D 15m -m -q三、分场景测抖动标准流程场景 1空载抖动基准值关闭所有后台程序、关闭压力bash运行killall stress-ng sudo cyclictest -p 99 -a 3 -i 1000 -D 20m -m合格标准平均抖动30μs极限抖动50μs场景 2满负载压力抖动实战最关键bash运行# 开整机压力 stress-ng --cpu 8 --io 4 --vm 32 # 测高压下实时抖动 sudo cyclictest -p 99 -a 3 -i 1000 -D 20m -m工控合格标准满载抖动 80μs 优秀满载抖动 100μs 可用场景 3多线程并发抖动多核实时bash运行# 4线程实时任务同时跑测并发抖动 sudo cyclictest -p 99 -t 4 -a 3-6 -i 500 -D 15m -m四、专业抖动分析工具1. rt-migrate-test 测线程迁移抖动检测内核线程抢占导致的抖动漂移bash运行sudo rt-migrate-test -p 99 -a 32. pi_stress 测优先级反转抖动排查高优先级被低优先级阻塞带来的异常大抖动bash运行sudo pi_stress -D 10m五、降低实时抖动必做优化立刻见效内核启动参数最关键plaintextisolcpus3,4 nohz_full3,4 rcu_nocbs3,4隔离实时核心不让系统进程抢占固定 CPU 主频bash运行echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor关闭干扰服务bash运行sudo systemctl stop irqbalance sudo sysctl -w kernel.numa_balancing0 sudo swapoff -a网卡 / 磁盘中断绑非实时核避免硬件中断瞬间拉高抖动六、抖动结果判定表表格抖动范围等级适用场景20μs极佳高精度伺服、激光焊接、高速闭环20~50μs优秀通用机器人、AGV、视觉跟随50~100μs合格普通工控、数据采集150μs不合格不适合硬实时业务七、一键抖动测试脚本bash运行#!/bin/bash sudo killall stress-ng echo 开始空载实时抖动测试 sudo cyclictest -p 99 -a 3 -i 1000 -D 10m -m -q echo 开始压力实时抖动测试 stress-ng --cpu 4 --io 2 --vm 16 sleep 3 sudo cyclictest -p 99 -a 3 -i 1000 -D 10m -m -q killall stress-ng