首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >SiliconMotion:多租户SSD的PerformaShape™算法

SiliconMotion:多租户SSD的PerformaShape™算法

作者头像
数据存储前沿技术
发布2025-02-11 16:58:15
发布2025-02-11 16:58:15
3230
举报

问题意识

数据中心资源原生支持多租户场景,随着容器化应用不断深入,如何保障租户的应用程序QoS不被其他程序干扰,是值得关注的问题。

多租户QoS的挑战在于SSD中不一致的租户行为。噪声倾向可能影响行为一致的其他租户的QoS。需要隔离,然而:

• 严格隔离(不共享任何内容)存在问题:

  • • 难以实现,将设备中的资源物理分割/隔离成小的独立部分是一个挑战
  • • 可能导致碎片化和浪费

• NVMe提供基于WWR(权重轮询仲裁)的提交队列仲裁机制,具有紧急优先级类别。但这是有限的:

  • • 4级优先级/权重
  • • 专注于提交队列级别,而不是具有性能参数(IOPS或吞吐量作为权重)的IO命令级别
  • • 在支持多个PCIe端口和功能的NVMe子系统上,NVMe控制器之间没有仲裁机制

PerformaShape™机制 用于根据用户定义的QoS集合重构IO请求。QoS集合是一组一个或多个主机租户和/或内部任务(如回收等),它发起IO类型操作。

PerformaShape 算法基于双状态令牌桶算法。

• 每个QoS集合被分配一个令牌桶:

• 一个令牌是对IO命令或一定数量KiB的许可。

• 令牌率:令牌填充令牌桶的速度,可配置且可变。

• 令牌容量/桶大小:令牌桶可以容纳的最大令牌数。

• 当QoS集合/客户端请求n个令牌时:

• 如果桶中有≥n个令牌,则授予许可。

• 否则,请求等待直到桶中累积足够的令牌。

双状态令牌桶算法:

  1. 1. 目的:双重速率允许客户端请求更多,但给予较低优先级,机会性处理。
  2. 2. 令牌填充水平 ≥ 令牌阈值时:令牌速率将为标准令牌速率,任何令牌请求将被高优先级接受。
  3. 3. 否则,令牌速率将设置为第二令牌速率(> 标准令牌速率),任何令牌请求将被低优先级接受。

图解释了SiliconMotion采用的性能重构机制,具体使用双状态令牌桶算法来管理和优化系统性能。该算法的核心思想是:

  1. 1. 资源管理:通过令牌桶机制控制资源使用率,防止系统过载。
  2. 2. 优先级分配:根据令牌桶的填充水平,动态分配请求的优先级。
  3. 3. 灵活性:允许客户端在低优先级下发出更多请求,增加系统的吞吐量。
  4. 4. 性能优化:在保证系统稳定性的同时,最大化资源利用率。
  5. 5. 自适应调节:根据当前系统负载自动调整处理策略。

这种机制能够有效地平衡系统性能和资源利用,特别适用于需要处理大量并发请求的存储系统,如SSD控制器等。它能够在保证关键任务高优先级执行的同时,also为非关键任务提供处理机会,从而提高整体系统效率。

两阶段 Shaping:

• 令牌桶塑造平滑IO请求并限制其异常值。双状态令牌桶算法允许更多的IO突发性,以优化设备带宽的利用率。

• 然而,设备带宽是有限的。当我们有多个嘈杂/高需求的租户时,我们需要确保设备不会被过度预订。因此,我们提出第二阶段令牌桶,即设备级令牌桶:

  • • 简单的单状态令牌桶,令牌速率等于设备带宽
  • • 可以用于不同类型的IO性能控制,如IOPS、吞吐量(GB/S)、读写等

图中SPS和DPS是Performance Shaping Mechanism中的关键组件,它们代表了两阶段整形机制的不同部分:

SPS (Set Per Service) 指的是每个服务集合或每个QoS (Quality of Service) 集合的设置。这是第一阶段的令牌桶机制,用于平滑IO请求并限制异常值。

DPS (Device Per Service) 则指设备级别的服务设置。这是第二阶段的令牌桶机制,即图中提到的Device Level Token bucket。

这两个组件共同构成了两阶段整形机制:

  1. 1. SPS实现了双状态令牌桶算法,允许更多的IO突发性,以优化设备带宽利用率。
  2. 2. DPS实现了单状态令牌桶,其令牌率等于设备带宽。它用于确保在有多个高需求租户时,设备不会被过度预订。

这种两阶段方法允许在优化单个服务性能的同时,还能在设备级别进行整体控制,从而实现更精细和高效的性能优化。这对于管理多租户环境下的存储资源分配和性能保证至关重要。

Performance Shaping 模拟测试

目标:

  • • 平滑波动
  • • 隔离噪声邻居
  • • 充分利用SSD带宽

左图显示业务系统对存储IO的请求有明显的波动(Noisy neighbor),出现3个台阶:50K、100K、和150K;右图的业务系统IO请求相对比较平稳(Good neighbor),恒定在100K左右。

通过两阶段-令牌桶机制协调多应用系统的IO。

在SPS阶段,通过State Rate 将业务IO平滑;在DSP阶段聚合多个业务系统的IO。

基于 PerformaShape 技术实现:

  • • 在 13GB/S 系统中从主机发出 16GB/S 读取请求(实现超售)
  • • 隔离并保证每个租户的性能
  • • 消除嘈杂的邻居

Note: 严格来说系统并没有实现16GB/s 的实际带宽,13GB/s 是单盘实测带宽,基于PerformaShape可以平滑偶发高带宽请求(低优先级,延迟响应),从而保证其他租户带宽不受影响。

总结

  • • PerfromaShape™算法,通过双状态令牌桶算法对IO请求进行控制和隔离,以优化设备带宽利用率。
  • • 通过实际演示展示PerfromaShape™算法的效果,包括隔离嘈杂邻居、限制IO请求速率和提高整体性能等。
  • • 提供灵活的IO请求控制和隔离能力,支持多种IO类型参数设置,并能够适应不同的硬件环境和应用场景。

---【本文完】---

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 王知鱼 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题意识
  • 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档