目录

1. 问题概述

1.1 赛题说明

设计并实现一个基于用户态调度的资源管控Agent框架,例如用户态调度的agent,通过agent感知workload然后基于sched_ext调整cpu调度策略,生成scx,优化workload性能;除了上面的cpu调度agent,还可以考虑将ebpf作为hook,agent作为策略决策,实现其他类型的os agent;比如:network policy agent,security policy agent, resource contral agent(cgroup)等。

1.1.1 问题要求

  • 设计并实现一个基于用户态调度的资源管控Agent框架,实现标准化的工具和Skills能力接口,支持Agent快速构建和扩展;
  • Agent需要能够感知workloads,基于sched_ext调整CPU调度策略;
  • 集成scx调度器,实现对workload性能的优化;
  • 支持扩展ebpf作为hook,实现network policy agent、security policy agent、resource control agent等功能;
  • 提供完整的性能对比测试数据和可复现的实验环境。

1.1.2 项目概述

a) 项目背景

随着云计算、人工智能以及高性能存储的发展,现代操作系统需要同时面对多样化的工作负载,包括计算密集型任务、I/O密集型任务、网络服务以及多租户资源竞争场景。传统Linux内核资源管理机制主要依赖固定策略,例如CFS调度器、静态cgroup资源限制以及固定网络策略,难以根据运行时workload特征动态调整系统资源分配。

近年来,Linux内核逐渐提供了更加灵活的可编程接口,例如sched_ext扩展调度框架以及eBPF内核扩展机制,使用户空间程序能够感知系统状态并动态调整内核行为。然而,现有机制仍然缺少一个统一的用户态智能控制框架,用于完成workload感知、策略生成以及资源控制执行的完整闭环。

因此,本项目提出一种面向openEuler的自适应资源管控Agent框架。该框架通过用户态Agent持续感知系统运行状态,根据workload特征动态生成资源管理策略,并通过sched_ext、eBPF以及cgroup等内核接口执行策略调整,实现面向不同应用场景的自适应资源优化。

b) 项目目标

本项目旨在设计并实现一个通用的OS资源管控Agent框架,实现以下目标:

(1)提供标准化Agent运行框架

设计统一的Agent Runtime,包括:workload感知模块、策略决策模块、Skill管理模块、策略执行模块。通过模块化设计,使不同类型的资源控制能力能够以Skill插件形式快速扩展。

(2)实现基于sched_ext的CPU调度Agent

针对CPU资源管理场景,实现CPU Scheduling Skill:感知应用CPU行为、分析workload类型、自动选择调度策略、动态生成sched_ext调度行为。其中,NUMA感知调度作为CPU调度Skill的一种优化策略,用于提升多socket系统中的数据访问效率。

(3)支持基于eBPF的OS Agent扩展

利用eBPF提供的内核hook能力,实现多类型资源控制Agent,包括:Network Policy Agent、Security Policy Agent、Resource Control Agent。通过统一Skill接口,使不同资源管理能力能够共享同一Agent框架。

c) 核心创新点

本项目主要创新点包括:

(1)提出面向操作系统资源管理的Agent架构

区别于传统固定资源管理机制,本项目将资源管理过程抽象为:

Workload Observation → Policy Decision → Policy Execution → Feedback

的闭环控制模型,使系统能够根据运行状态动态调整资源策略。

(2)设计可扩展Skill插件机制

通过标准化接口封装不同资源管理能力,使CPU调度、网络控制、安全策略以及资源隔离等功能能够以插件形式扩展。

(3)实现基于workload感知的动态CPU调度

基于sched_ext实现CPU Scheduling Skill,根据应用运行特征动态调整调度策略。同时结合NUMA拓扑信息,实现计算任务和数据访问之间的协同优化。

(4)融合sched_ext与eBPF实现用户态智能控制

利用sched_ext提供CPU调度扩展能力,利用eBPF提供通用内核hook机制,实现用户态Agent对操作系统行为的动态控制。

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

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