Coder Social home page Coder Social logo

netpy / proj122-predict-qos-jitter-ratio-for-proces Goto Github PK

View Code? Open in Web Editor NEW

This project forked from oscomp/proj122-predict-qos-jitter-ratio-for-proces

0.0 0.0 0.0 5 KB

实现一个通过底层指标采集预测业务进程QoS抖动比例的工具

proj122-predict-qos-jitter-ratio-for-proces's Introduction

proj122-predict-QOS-jitter-ratio-for-proces

实现一个通过底层指标采集预测业务进程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全国大学生操作系统比赛”的章程和技术方案要求

项目导师

难度

特征

  • 需要了解如何通过Linux内核提供的接口采集数据
  • 了解进程对系统资源的使用,包括cpu、内存、disk i/o、处理器缓存等

参考文档

在离线混部作业调度与资源管理技术研究综述

A Top-Down method for performance analysis and counters architecture

License

任意开源license都可

预期目标

注意:下面的内容是建议内容,不要求必须全部完成。选择本项目的同学也可与导师联系,提出自己的新想法,如导师认可,可加入预期目标

  1. 第一题:数据采集

    编写工具,尽量多的采集各项性能指标。

  2. 第二题:给定类型的业务的QoS预测

    工具可以预测给定类型业务(如redis)的QoS变化,当干扰进程出现的时候工具可以实时汇报QoS受到的影响。这一题要求参赛者评估出给定的业务对资源的使用有什么样的特征,从而预先设计出指标与QoS之间的函数。

  3. (可选)第三题:业务自适应

    在第一题的基础之上,实现业务自适应。工具可以自动判断一个黑盒业务的特征,并根据特征去采集不同的指标、生成不同的拟合函数以预测QoS变化。

proj122-predict-qos-jitter-ratio-for-proces's People

Contributors

chyyuu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.