目录

Tuning Agent

面向 openEuler/Linux 的自适应资源管控项目,包含两项相互解耦的核心实现:tuning-agent 是由 LLM 驱动决策、可信 Runtime 约束执行的通用调优框架;scx_agent_classed 是可独立运行的 LATENCY/BATCH 两级 sched_ext 调度器。二者可通过独立 MCP 适配器组成从工作负载感知到策略发布的调优闭环。

当前项目已实现动态调度分类与 cgroup CPU 调优;更多观测、变更、测量和评估能力可通过 MCP 接入,特定领域的调优知识则由 Skills 按需注入模型。所有系统变更仍由可信 Runtime 统一负责 WAL 记录、失败回滚、固定 A/B 评估与最终提交。

workload / scheduler event
          |
          v
    tuning-agent  <---->  LLM
          |
          | MCP capabilities
          v
scx_agent_classed_mcp
          |
          | Unix control API
          v
 scx_agent_classed  ---->  Linux sched_ext

核心能力

  • 安全调优:所有系统修改均可回滚并写入 WAL;只有固定 A/B 评估确认收益后才能提交。
  • 能力扩展:通过强类型 Probe、Mutation、Measurement、Comparison 接口和 MCP 接入新的调优能力。
  • 知识扩展:通过 Skills 和 References 为模型提供按需加载、版本固定的领域知识。
  • 自定义调度:按进程 comm 将任务动态划分为 LATENCY/BATCH,兼顾延迟、吞吐与 CPU 公平性。
  • 闭环学习:调度器上报未匹配任务,Agent 生成分类规则,MCP 适配器负责可回滚发布。
  • 可复现实验:基于 libvirt/KVM 运行对照实验,采集证据并生成统计结果与 HTML 报告。

项目结构

目录 作用
tuning_agent/ 通用 Rust 调优 Runtime、安全事务与评估内核、Skills/MCP 扩展机制
schedule/scx_agent_classed/ 可独立运行的 LATENCY/BATCH 两级 sched_ext 调度器及控制 API
schedule/scx_agent_classed_mcp/ 调度器动态规则的 MCP 适配器
bench/ VM 环境、工作负载、实验编排、统计分析与报告生成

构建

cargo build --locked --release --manifest-path tuning_agent/Cargo.toml
cargo build --locked --release --manifest-path schedule/scx_agent_classed/Cargo.toml
cargo build --release --manifest-path schedule/scx_agent_classed_mcp/Cargo.toml

运行 Agent:

cp tuning_agent/tuning-agent.example.toml tuning_agent/tuning-agent.toml
./tuning_agent/target/release/tuning-agent \
  --config tuning_agent/tuning-agent.toml daemon

调度器需要内核启用 sched_ext,实际加载、Agent 与 MCP 联调及实验环境初始化步骤见各组件文档。

验证环境

  • 默认:openEuler 24.03 LTS SP4 userspace + openEuler 6.6 kernel
  • 对照:Ubuntu 22.04 userspace + Linux 6.18 kernel
  • 基准设施:Python 3、libvirt、QEMU/KVM、Cargo

文档

演示视频

Tuning_Agent 演示视频(百度网盘,提取码:3d35)

关于
191.6 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号