为低延迟操作优化Linux OS

为什么用Linux做实时应用开发

比传统 RTOS(VxWorks/ThreadX)生态强、网络好、驱动全、可跑复杂协议+边缘计算+AI ,同时做到 10--200μs 确定性延迟

realtime linux的应用很多,有以下这些, 具体应用场景问下AI就可以,我就不在这大段的粘贴AI的回答了:)

  • 工业自动化
  • 机器人(工业/协作/移动)
  • 汽车电子 / 车载实时控制
  • 能源电力(光伏/储能/风电/电网)
  • 医疗设备(生命体征/成像/手术设备)
  • 通信与网络设备(低时延转发)
  • 专业音视频与测控

知识储备

在linux上做实时应用开发,特别是系统调教,需要掌握一些操作系统及内核方面的知识。我在学习过程中读过一些不错的书以及资料,也推荐给各位。

为低延迟操作优化Linux OS

提升Linux的实时性能,目前行业中有许多成熟且公开的方案,而且很多都是头部企业开源提供的,我在刚开始做项目的时候,第一步也是参考这些优化方案,初步调教系统。这些优化已经能显著提升系统的延迟。

我下面也只是简单介绍一下,具体的操作还是需要参考这些公司的教程及文档,这些文档写的还是相当不错的,我如果用AI总结贴出来,反而是多此一举。

Red Hat Enterprise Linux for Real Time

optimizing rhel for low latency operation红帽官方 RHEL8 RealTime 实时内核完整调优体系 ,覆盖从BIOS→固件→内核启动参数→调度→CPU隔离→中断绑定→内存→时钟→电源→日志→调试工具→网络→故障捕获→应用部署全链路,内容非常全面。

Linux-Based Runtime Systems Performance Optimization

CODESYS 是德国 CODESYS Group 推出的、硬件无关的工业自动化软件开发平台 ,核心是一套符合 IEC 61131-3 标准的 PLC 编程 IDE + 跨平台实时运行时(SoftPLC),全球装机量超 500 万套,被 500+ 控制器厂商采用。

该公司的运行时系统(Runtime / SoftPLC) 支持Linux(含 PREEMPT-RT)、Windows、嵌入式实时OS、容器(Docker)、虚拟化 ,具有微秒级实时性、支持多核、支持 EtherCAT/PROFINET 等工业总线。

本人目前的工作,就focus在这一领域。Linux-Based Runtime Systems Performance Optimization 是CODESYS提供给客户设置linux以提升runtime实时性能的一份公开资料。虽然大多数人并不是在为codesys runtime进行调优,但是即使是不同的实时应用,对linux的调教也是大致相同的,具有重要的参考意义。

Intel® Resource Director Technology (Intel® RDT)

Intel® Resource Director Technology (Intel® RDT) 是一整套用于 ** 监控与分配共享资源(LLC 缓存、内存带宽)** 的硬件 + 软件技术集合,主要面向服务器、虚拟化、实时 / 工业场景,解决 "吵闹邻居"(noisy neighbor)干扰问题。

其中最重要的一个技术是CAT。CAT 允许软件可控地重新分配 L3 缓存容量,隔离不同业务缓存争抢;可用于提升运行时确定性、工业实时负载、DPDK 转发、CODESYS RT 工控场景,做关键业务缓存资源独占隔离,降低调度抖动。


本作品采用 CC BY-NC-SA 4.0 协议发布,允许署名非商业转载,二次创作须以相同协议共享,禁止商用。