mClockReservation / weight / limit
通过保留量、权重和上限协调不同请求类别。
- 核心约束
- 类别配置共同约束请求的服务顺序。
- 适用问题
- 存储 QoS 和前后台工作负载隔离。
- 边界与取舍
- 实际服务效果受设备能力估计与下层限流影响。
常见操作#
q 为活跃请求或客户队列数量;reservation、weight、limit 是不同约束。
| 操作 | 时间复杂度 | 条件与说明 |
|---|---|---|
| 计算请求标签 | 每类标签使用固定数量算术 | 根据到达时间、服务量、预留速率和权重更新,不能把一个标签当成全部决策。 |
| 选择可发出的请求 | 由 reservation / proportional 队列维护决定 | 有序容器或堆影响查找和更新成本;Ceph 的分片队列还改变参与竞争的范围。 |
| 实际设备服务 | 依赖请求大小、设备吞吐与在途深度 | 调度选中不等于立即完成;需要测量下游队列行为。 |
时间与空间#
- 时间复杂度
- 标签算术 + 队列选择 / 更新 + 下游服务
- 辅助空间
- 待处理请求及各客户的时钟 / 队列状态
Ceph 的 mClock 配置依赖容量估计和 OSD 队列分片,不能仅凭权重推出端到端吞吐或时延保证。
工程中的应用#
1 个案例 · 附源码Ceph OSD 的 mClock 用保留份额、权重与上限协调客户端请求、后台恢复和后台尽力服务。
附源码片段 · 调度与资源分配
基础原理参考资料
Gulati et al. · mClock原算法的预留、上限、份额标签和服务选择。
Ceph Squid · mClock configurationCeph 的 profile、容量校准、队列和运行限制。