From d3f0e82d5c7606eb3d27ab5b33db98b453e2b57b Mon Sep 17 00:00:00 2001 From: wangyun2137 <66060358+wangyun2137@users.noreply.github.com> Date: Wed, 23 Dec 2020 15:02:04 +0800 Subject: [PATCH 1/2] Update track2-proj-template.md --- track2-proj-template.md | 30 +++++++++++++++++++++++++----- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/track2-proj-template.md b/track2-proj-template.md index bc72734..7ec8e69 100644 --- a/track2-proj-template.md +++ b/track2-proj-template.md @@ -1,10 +1,23 @@ # projX-name ### 项目名称 -...... +简易调度器 ### 项目描述 -...... +云原生场景下,虚拟机的规格会变的越来越小,传统的CFS调度器在CPU数量很少的Guest内显的非常臃肿,开销大并且大部分功能也是不需要的。 +简易调度器项目的目标,是基于小规格虚拟机场景,从零出发构建一个新的调度器,需要考虑的目标有: +• 兼容所有对通用调度器的需求和接口 +• 可以通过系统接口动态接管CFS任务 +• 不需要非必要特性的支持,例如quota、share、nice等,数据结构以及队列维护开销最低 +• 重新定义调度策略/负载平衡,尽量简单且低开销 + 例如: +• 目前的内核调度器还是分散在每个cpu上,由于单个cpu缺乏系统任务运行的整体概念, 对于任务唤醒和平衡上有着天然缺陷,造成load balance做出错误的调度决策,context switch增多等问题。 +• 如果调度器可以了解系统全局负载和计算资源,做集中统一的调度,调度决策会更加准确,也会减少不必要的contentx swith和错误的load_balance。 +• 提醒 +• 考虑任务负载的特点(batch or interactive), 和虚拟化和容器化场景 +• 考虑系统CPU结构、算力、多层cache +• 考虑以上全局数据的一致性和调度时的cpu局部性问题 +即通过极简设计提升稳定性和性能表现,在确保多任务正常流转的前提下,把调度延迟或吞吐做到极致(或能用开关在两者之间切换)。 ### 所属赛道 @@ -32,13 +45,15 @@ ### 难度 -...... +中等 ### 特征 -...... +替代CFS调度器 +在少量CPU和任务的场景下性能表现优于CFS +可以动态的使能和关闭 @@ -56,4 +71,9 @@ ### 注意:下面的内容是建议内容,不要求必须全部完成。选择本项目的同学也可与导师联系,提出自己的新想法,如导师认可,可加入预期目标 -...... +第一题:简易调度器的设计和实现, 一键动态切换调度器 +• 设计调度策略,基于CFS调度器,实现相应的回调函数 +• 实现一键动态在CFS和简易调度器之间的来回切换 +第二题:新负载平衡策略的实现 +• 完成load balance基本算法,比较与CFS算法的优缺点 +• 实现性能趋向性和功耗趋向性的算法 From a88269b0a38baceeabfd762b94791ea65d9ec3bd Mon Sep 17 00:00:00 2001 From: wangyun2137 <66060358+wangyun2137@users.noreply.github.com> Date: Wed, 23 Dec 2020 15:36:04 +0800 Subject: [PATCH 2/2] Update track2-proj-template.md --- track2-proj-template.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/track2-proj-template.md b/track2-proj-template.md index 7ec8e69..92e0c87 100644 --- a/track2-proj-template.md +++ b/track2-proj-template.md @@ -35,11 +35,11 @@ ### 项目导师 -...... +王贇 -* github https://github.com/...... +* github https://github.com/wangyun2137 -* email ......@...... +* email yun.wang@linux.alibaba.com @@ -63,7 +63,7 @@ ### License -........ +GPL 2.0