实现一个通过底层指标采集预测业务进程QoS抖动比例的工具
在混合部署时,为了提高资源利用率,本来独占资源的在线业务会和离线业务在机器上并存,这不可避免地带来了离线业务对在线业务的干扰。于是如何感知并保证在线业务的服务质量(QoS)便成为了被广泛研究的课题。在现实环境下,业务的QoS常常是不被直接暴露出来的,这就要求混合部署工具需要有能力在面对一个黑盒业务时通过底层数据刻画QoS的变化。
请在Linux平台上,开发一个工具,该工具可以通过内核接口或相关技术(比如proc、cgroup、perf等,必要时也可以修改内核代码)采集到业务进程所用资源的相关信息,包括但不限于:
- IPC/CPI
- cache miss
- iTLB miss
- CPU使用率
- 内存使用率
采集到数据之后,工具会根据这些信息通过一个函数预测进程QoS的变化。
假设A是对内存资源消耗较高的一个进程,当宿主机中只有A这一个进程的时候其响应时间处在一个基准态。当B和C也被部署进了这个机器之后,他们如果也占用内存资源,那么A由于受到新加入的进程的干扰,其响应时间相对基准态就会变长,引发QoS下降。在这里就可以建立内存使用率和QoS之间的函数以预测QoS的变化。
2022全国大学生操作系统比赛的“OS功能设计”赛道
- 以小组为单位参赛,最多三人一个小组,且小组成员是来自同一所高校的本科生/研究生
- 如学生参加了多个项目,参赛学生选择一个自己参加的项目参与评奖
- 请遵循“2022全国大学生操作系统比赛”的章程和技术方案要求
- gitee @czrz
- email: [email protected]
高
- 需要了解如何通过Linux内核提供的接口采集数据
- 了解进程对系统资源的使用,包括cpu、内存、disk i/o、处理器缓存等
A Top-Down method for performance analysis and counters architecture
任意开源license都可
注意:下面的内容是建议内容,不要求必须全部完成。选择本项目的同学也可与导师联系,提出自己的新想法,如导师认可,可加入预期目标
-
第一题:数据采集
编写工具,尽量多的采集各项性能指标。
-
第二题:给定类型的业务的QoS预测
工具可以预测给定类型业务(如redis)的QoS变化,当干扰进程出现的时候工具可以实时汇报QoS受到的影响。这一题要求参赛者评估出给定的业务对资源的使用有什么样的特征,从而预先设计出指标与QoS之间的函数。
-
(可选)第三题:业务自适应
在第一题的基础之上,实现业务自适应。工具可以自动判断一个黑盒业务的特征,并根据特征去采集不同的指标、生成不同的拟合函数以预测QoS变化。