目录

EulerAgentGuard:基于 cgroup/eBPF 的 openEuler 自适应资源管控 Agent

EulerAgentGuard(欧拉智控)面向 AI Agent、自动化运维 Agent 和 coding agent 这类具有 tool-call 阶段性、突发性资源需求的 workload,通过用户态 OS Agent 感知 workload 状态并决策资源策略,再通过 Linux cgroup v2、process eBPF monitor、sched_ext 预留路径、memcg fallback 和 per-tool-call wrapper 执行资源控制。

本 README 只保留仓库入口、快速复现和材料索引。完整设计、实验结果和论证见 项目报告-ddl战神.docx;按评委顺序复现实验见 docs/competition_submission/实验操作手册.md

提交材料

材料 路径 说明
项目总报告 项目报告-ddl战神.docx 论文式正式报告
实验操作手册 docs/competition_submission/实验操作手册.md 按复现顺序组织的操作手册
图表资源 docs/competition_submission/figures/ 报告配套图表

核心能力

能力 当前实现
标准化 OS Agent 框架 agentcg/core/framework.py
workload 感知 process eBPF monitor、cgroup stats、wrapper JSONL history
CPU 自适应调度 CpuSchedulingSkill 通过 cgroup v2 cpu.weight 调整 session_high/session_low
sched_ext 集成路径 agentcg/scheduler/ 保留 scx_flatcg,openEuler SP3 正式路径使用 cgroup fallback
Memory control MemoryControlSkill 封装 memcg BPF 与 cgroup v2 memory.high/memory.low fallback
Network/Security 扩展 NetworkPolicySkillSecurityPolicySkill audit-only;security 支持 wrapper-bound enforce
per-tool-call cgroup bash_wrapper.sh 为 tool call 创建临时 cgroup 并记录资源事件
自适应参数调节 WorkloadAdaptiveSkill 基于 JSONL 历史推荐 boost_window_s
openEuler 部署 deploy/agentcgroupd.servicedeploy/install.sh

目录结构

mxoedzsyzygka/
  README.md
  agentcg/
  deploy/
  scripts/
  docs/competition_submission/
  requirements.txt
  LICENSE

快速验收

推荐平台:openEuler 24.03-LTS-SP3,cgroup v2,4 vCPU / 8 GB RAM。真实 cgroup benchmark 和 daemon 通常需要 root 权限。

1. 环境检查

stat -fc %T /sys/fs/cgroup
cat /sys/fs/cgroup/cgroup.controllers

2. 编译

cd agentcg
make

3. 单元测试

cd agentcg
python3 -m unittest test_agentcgroupd test_os_agent_framework \
  test_competition_benchmark test_policy_extensions test_security_enforce \
  test_cpu_mem_coupling test_workload_adaptive -v

4. 一键验收

bash scripts/final_handoff_verify.sh

5. Daemon smoke

cd agentcg
sudo python3 agentcgroupd.py \
  --cgroup-root /sys/fs/cgroup/agentcg \
  --no-scheduler

systemd 部署:

sudo bash deploy/install.sh
systemctl status agentcgroupd
journalctl -u agentcgroupd -n 30 --no-pager

主实验入口

cd agentcg
python3 benchmarks/competition_benchmark.py \
  --cgroup-root /sys/fs/cgroup/agentcg-bench \
  --iterations 10 \
  --background-workers 8 \
  --background-seconds 8 \
  --work-units 8000000 \
  --run-order round-robin \
  --modes baseline,static,agent

更多实验命令和顺序请见 docs/competition_submission/实验操作手册.md

结果摘要

在 4 vCPU / 8 GB openEuler VM 的 CPU contention 主实验中,Agent 模式相对 Linux baseline 取得 1.508x 平均 speedup、1.108x median speedup,并将延迟 CV 从 0.628 降低到 0.094。重复性实验、scaling、boost-window sensitivity、memory pressure、wrapper overhead 和 policy demo 见 项目报告-ddl战神.docx

设计边界

边界 说明
sched_ext 代码保留 sched_ext/scx 路径;openEuler SP3 官方复现路线使用 --no-scheduler + cgroup v2 fallback
memcg BPF 保留 memcg BPF 原型;正式 memory demo 使用 cgroup v2 fallback
security enforcement 当前为 wrapper-bound enforcement,不宣称完整 BPF LSM
network policy 当前为 audit-only,不宣称生产级 network isolation
benchmark VM 短样本存在波动,详细统计见总报告

阅读顺序

  1. README.md:快速了解仓库入口和复现命令。
  2. 项目报告-ddl战神.docx:查看正式项目报告。
  3. docs/competition_submission/实验操作手册.md:按步骤复现评测和演示。

参考资料

License

本项目继承原 AgentCgroup 代码基础,许可证见 LICENSE

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

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