Update adaptive resource management Agent document
设计并实现一个基于用户态调度的资源管控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)等。
随着云计算、人工智能以及高性能存储的发展,现代操作系统需要同时面对多样化的工作负载,包括计算密集型任务、I/O密集型任务、网络服务以及多租户资源竞争场景。传统Linux内核资源管理机制主要依赖固定策略,例如CFS调度器、静态cgroup资源限制以及固定网络策略,难以根据运行时workload特征动态调整系统资源分配。
近年来,Linux内核逐渐提供了更加灵活的可编程接口,例如sched_ext扩展调度框架以及eBPF内核扩展机制,使用户空间程序能够感知系统状态并动态调整内核行为。然而,现有机制仍然缺少一个统一的用户态智能控制框架,用于完成workload感知、策略生成以及资源控制执行的完整闭环。
因此,本项目提出一种面向openEuler的自适应资源管控Agent框架。该框架通过用户态Agent持续感知系统运行状态,根据workload特征动态生成资源管理策略,并通过sched_ext、eBPF以及cgroup等内核接口执行策略调整,实现面向不同应用场景的自适应资源优化。
本项目旨在设计并实现一个通用的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框架。
本项目主要创新点包括:
(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对操作系统行为的动态控制。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
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 问题要求
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架构
区别于传统固定资源管理机制,本项目将资源管理过程抽象为:
的闭环控制模型,使系统能够根据运行状态动态调整资源策略。
(2)设计可扩展Skill插件机制
通过标准化接口封装不同资源管理能力,使CPU调度、网络控制、安全策略以及资源隔离等功能能够以插件形式扩展。
(3)实现基于workload感知的动态CPU调度
基于sched_ext实现CPU Scheduling Skill,根据应用运行特征动态调整调度策略。同时结合NUMA拓扑信息,实现计算任务和数据访问之间的协同优化。
(4)融合sched_ext与eBPF实现用户态智能控制
利用sched_ext提供CPU调度扩展能力,利用eBPF提供通用内核hook机制,实现用户态Agent对操作系统行为的动态控制。