docs: 按决赛要求的统一目录结构组织作品
将仓库顶层整理为决赛要求的七项内容(README.md、src、docs、tests、 demo、presentation、作品原创承诺书.pdf),源码与部署脚本统一归入 src/。
- pyproject.toml 保留在根目录:package-dir、pythonpath、testpaths 均按仓库根解析,移入 src/ 会使 pytest 与 pip install -e . 失效
- 随之改写失效路径:测试与 demo 的 ROOT 解析、dashboard 的 artifact_root 与 –output 默认值、setup-runtime.sh 的 pip 安装源
- tests/artifacts/ 只保留支撑 tests/results/ 结论的产物,并补充 产物与结论的对应说明
- CI 的 d0-verify.sh 路径更新为 src/deploy/,并增加目录结构门禁
验证:pytest 273 项全通过;demo/offline_safety_demo.py failures=0 退出码 0;bash -n src/deploy/d0-verify.sh 通过。
Co-Authored-By: Claude Opus 5 noreply@anthropic.com
版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9
京公网安备 11010802047560号
AURA:面向 openEuler 的自适应调度资源管控 Agent
AURA(Adaptive Userspace Resource-control Agent)是运行在 openEuler 24.03 LTS SP4 上的调度资源管控 Agent。 自研 sched_ext 调度器
scx_aura负责任务选择与配置生效,控制面aurad负责负载画像、提案与校验; 所有变更提案无论来自规则、历史方案、LLM、控制台、REST 还是 MCP,都经过同一条安全执行链: 授权与边界校验、熔断、基线校验、快照、危险组合检查、金丝雀验证,失败时按快照精确恢复,全程审计。1. 项目简介
src/scheds/scx_aura/:基于 sched_ext 与 scx_rustland_core 2.3.7,在用户态进程内完成任务选择。apply_config校验完整的「策略、时间片、交互加权系数、迁移代价」四元组后,在一次写锁内发布。src/aura/:负载画像、规则投票准入、运维任务与 LLM 提案、专家调度器建议、安全执行链、审计。src/console/static/(控制台前端)、src/aura/console.py(REST)、src/aura/mcp_server.py(MCP)。src/skills/下的声明式 Skill,src/ebpf/下的 cgroup 观测代理与扩展模板。2. 应用场景
在受测范围内,没有一个调度器或固定配置能在所有负载和指标上占优(见第 8 节),这是 AURA 按业务目标选择策略与参数的出发点。
3. 主要功能
/run/aura/app-metrics.json),判定 latency_critical / interactive / batch / unknown 并给出置信度src/aura/perception.py、profile.pysrc/aura/reflex.py、src/skills/*/rules/src/aura/agent.py、repository.pysrc/aura/directive.py、llm.pysrc/aura/routing.pysrc/aura/safety.py、metric_window.pyapply_config一次恢复;cpu.max保存并写回原始文本;恢复不一致时记为失败src/aura/backends/unix.pyunsafe_batch_slice),直接发往套接字的apply_config也被调度器拒绝src/aura/safety.py、src/scheds/scx_aura/src/ctl.rssrc/aura/audit.py、src/console/static/--changed-only;仅用于控制台展示,不参与决策src/ebpf/cgroup-agent/scx_aura 的四种策略:
参数范围:
slice_us[100, 100000],boost_factor[0, 10],migration_cost[0, 10⁶];默认 fair / 5000 / 1.0 / 0。4. 系统环境
CONFIG_SCHED_CLASS_EXT、BTF、cgroup v2 与 PSI;已验证内核基于官方 SRPM 构建并回移上游提交 a8e03b6bbb2c(带-aura后缀,保留原内核与救援启动项)5. 依赖要求
httpx、mcp、pydantic、PyYAML;控制台额外需要fastapi、uvicorn;开发需要pytest、ruff。版本约束见pyproject.toml。rust-toolchain.toml),依赖scx_rustland_core 2.3.7、scx_utils 1.0.22、scx_stats 1.0.17、libbpf-rs 0.26.0-beta.1等,版本由Cargo.lock固定。src/deploy/fetch-scx-experts.sh、build-scx-experts.sh);DeepSeek 接口或本地 LLM(src/deploy/configure-deepseek.sh、enable-local-llm.sh)。src/deploy/prepare-benchmark-workloads.sh、prepare-llama-workload.sh)。第三方代码与补丁:
src/scheds/scx_aura/vendor/scx_rustland_core-2.3.7/:scx_rustland_core 2.3.7(GPL-2.0-only)的三个 BPF 资源文件,未作修改,仅在启用vendored-connector时使用,随附原始 LICENSE 与 SHA256SUMS。src/deploy/patches/0001-bpf-allow-syscall-kfuncs.patch:回移上游提交 a8e03b6bbb2c,向BPF_PROG_TYPE_SYSCALL程序开放 sched_ext 所需 kfunc。src/deploy/patches/0002-scx-bpfland-cpumask-weight-compat.patch:scx_bpfland 1.0.17 的 6.6 内核兼容修改,以有界遍历配合bpf_cpumask_test_cpu替代 6.8 才提供的bpf_cpumask_weight。scx_aura 声明 GPL-2.0-only 许可证,与 scx_rustland_core 一致。上游版本、提交与校验和见
docs/dependency-provenance.md。6. 构建方法
内核(官方内核未启用 sched_ext 时):
运行时一键安装(安装依赖、创建
/opt/aura/.venv、构建 scx_aura 与 eBPF 观测代理、安装 systemd 服务):分别构建:
src/scheds/scx_aura/Cargo.toml中的vendored-connector与三项派发优化为默认关闭的实验特性,默认构建不启用。7. 运行方法
启动服务并自检:
自检共 11 项,全部通过时输出 11 行
[PASS]并以failures=0结束。控制台地址为http://<主机IP>:8080。其他运行方式:
LLM 为可选组件。DeepSeek 密钥由
src/deploy/configure-deepseek.sh交互写入/etc/aura/deepseek.key(目录权限 0700),不进入仓库与日志;未配置时 aurad 使用离线规划器。8. 测试方法
功能与质量测试:
Python 测试覆盖安全执行链、Agent 决策、apply_config 协议、快照恢复、指标窗口、接口与基准报告;Rust 测试覆盖控制命令、配置发布、任务分类和策略选择。测试文件说明见
tests/README.md。性能实验:
固定配置对照(均值 ± 标准差,n=5,变化以 EEVDF 为基准;原始数据见
tests/artifacts/):计算型负载上 scx_bpfland 更好(llama.cpp 吞吐 +14.36%,内核编译时间 −4.92%)。该矩阵使用初赛版本的 scx_aura 测得,Redis 场景使用 interactive/750 预设; 另一组未使用预设的 Redis 测量中,scx_aura 与 EEVDF 的差异在波动范围内。表中结果反映调度器的性能特征,不作为 Agent 自动调整的收益。
动态负载对照(每周期 180 s 低—高—低请求,并行 6 个 stress-ng 计算进程;均值 ± 标准差,n=3):
三项指标的最优值分别出现在三个不同的固定配置上。启用反馈来源校验的自动控制组与各项最优值的最大差距最小(2.9%), 但没有在任何一项指标上超过最优的固定配置;与 EEVDF 相比两组自动控制的差异均在波动范围内。两组自动控制启用了默认关闭的实验特性。
安全用例 14 项(授权、越界、未授权工具、危险组合、回滚、熔断、系统 cgroup 写入、基线缺失、noop、绕过控制面的危险配置、权重同步失败)的输入与结果见
docs/项目说明书.pdf。9. 已知限制
set_policy、set_param不做组合校验。出现交互任务饥饿时可切回 fair,或停止 scx_aura 由内核恢复 EEVDF,详见docs/known-risk-batch-starvation.md。batch.slice、latency.slice和aura.slice。apply_config和三项派发优化均为默认关闭的实验特性。目录结构