知识卡片

mClock的三要素QoS调度模型

专业/工作 · 555.r

内容

mClock用预留值(最低要保证的资源份额)、权重(在满足所有人预留值之后,剩余资源按比例分配的依据)、上限值(不管多闲都不能超过的天花板)三个参数描述每个客户端的QoS诉求,调度时先满足所有客户端的预留值,再按权重瓜分剩余资源,同时任何人都不能突破自己的上限。相比只谈”占多少比例”的权重调度,mClock额外区分出预留值和上限值,让调度器既能保证关键客户端的最低服务质量,又能防止某个客户端在系统空闲时抢占过多资源、影响突发需求。dmClock是它的分布式版本,让多台服务器协同维护同一套配额而不需要中心节点。发散:预留、权重、上限这三个维度的组合,本质上覆盖了资源调度里三种不同的诉求——”至少要有多少”(下限)、”闲时多占多少”(比例)、”任何时候都不能超过多少”(上限),几乎所有多租户资源调度问题最终都会收敛到需要同时表达这三类约束。

参考来源

《Linux开源存储全栈详解从Ceph到容器存储》第7章《分布式存储与Ceph》