全文概览
文档由Silicon Motion技术公司提供,关于如何在多虚拟环境中优化NVMe SSD I/O性能的技术。
首先介绍了NVMe SSD的实验配置,包括使用的硬件、软件及测试平台,然后通过FIO测试程序和特定工作负载来展示如何通过 PerformaShape技术改善多租户环境中的QoS。该技术基于“双状态漏斗队列”算法,为每个QoS集分配两个令牌桶,以平滑流量波动、隔离噪音邻居并充分利用SSD带宽。
通过实验数据证明了 PerformaShape技术的有效性,能够有效地控制读带宽、隔离和保证各租户间的性能,并去除噪音影响,从而进一步提高了多租户应用中的QoS。
8TB SRIOV SSD 性能测试
测试配置
- SSD硬件 Silicon Motion 8TB PCIe Gen5企业级SSD,采用Micron B58R QLC NAND技术,接口为U.2
- SSD固件 支持4个虚拟功能(VFs)的FIO SR-IOV固件
- 测试平台 ASUS PRIME Z690-P主板(处理器为I5-12500,16GB内存)
- 测试程序 FIO
- 测试工作负载 支持4个虚拟功能(VFs);使用PerformaShape技术来优化多用户场景下的服务质量(QoS)。
直通超分带宽实测(未优化)
表格显示 VF1/2 的系统带宽上限为6GB/s,VF3/4 为2GB/s,主机请求总带宽为16GB/s。
测试评估了SRIOV环境下,当主机请求总带宽(16GB/s)超出系统限制(13GB/s)时的性能表现。结果显示:
- VF1和VF2 受噪声影响,性能达到5.2GB/s但表现不稳定。
- VF3和VF4 性能限制在1.95GB/s,但噪声影响仍然存在。
- 整体结果表明,资源分配过载会导致部分虚拟功能的性能下降和干扰,尤其是在高带宽请求情况下。
系统带宽上限
系统限制的13GB/s 带宽是怎么得出来的?
主要由SSD的PCIe链路硬件参数决定,PCIe通道数与版本:测试环境中使用的是PCIe Gen5接口。
PCIe的总带宽计算公式为: 带宽=每通道带宽×通道数
- PCIe Gen5 的每通道理论带宽是 ~4GB/s(单向,双向为 ~8GB/s)。
- 如果测试中使用的是 x4通道(常见于U.2接口的SSD),总带宽为: 4GB/s×4=16GB/s
- 实际情况下,由于协议开销(例如NVMe协议、SR-IOV虚拟化开销等),可用带宽会降低,大约为 13GB/s 左右,这就是系统限制的主要来源。
多租户环境下服务质量(QoS)提升技术
- 为了在多租户环境中进一步增强SSD的QoS,可将QoS管理技术与FDP(Flexible Data Placement)结合部署。
- PerformaShape™ 是QoS管理的一个示例,基于“双状态漏桶(Dual State Leaky Bucket)”算法开发。
- 每个QoS集分配两个令牌桶(token bucket),当令牌可用时,控制I/O流量。
PerformaShape™的优势:
- 平滑性能波动。
- 隔离“噪声邻居”(即资源争用的其他用户)。
- 充分利用SSD带宽。
关于 PerformaShape™ 技术细节,曾在23年的FMS材料中整理过一份,详见
图表显示了 NVMe 的虚拟化功能架构,具体包括
- 主机(Host)通过 PCIe 接口(PCIe IF)连接多个 NVMe 控制器(NVMe Controllers),每个控制器对应一个虚拟机或应用。
- 性能优化引擎(Performance Shaping Engine)根据不同的层级进行性能优化,包括:
- 虚拟机级别的读取和写入性能优化(VM0, VM1, VM2 等)。
- 应用程序级别的性能优化(如 VM1 APP1_0)。
- 设备级别的读取/写入性能优化。
- 每个性能优化步骤通过负载均衡模块(LB)和子性能优化模块(SPS)完成。
Note
PerformaShape™ 要基于ZNS+FDP在Host侧IO路径改造,需要定制 操作系统+文件系统,工作量也不小。
PerformaShape™ 优化后测试
关注 SPS 这一列,该项是基于双桶算法,针对干扰项(VF2/4)优化后的带宽QoS。
PerformaShaping™ 技术在 SRIOV(单根 I/O 虚拟化)环境中提供了以下优势
- 精确性能映射 支持高达 13GB/s 的读取性能请求。
- 性能隔离与保障 确保每个虚拟功能(VF)或命名空间(NS)能够达到预期性能。
- 消除性能干扰 有效解决“噪声邻居”问题,使系统带宽利用率更稳定。
从测试数据看,该技术优化了主机侧性能并提高了存储系统的可预测性,特别适用于共享环境中的 NVMe 存储。
底部图示
左侧显示没有使用 PerformaShape™ 技术的测试结果,右侧显示使用该技术的结果。
- 未使用时 带宽波动明显,受到“噪声邻居”影响。
- 使用后 带宽曲线稳定,性能得到显著优化。
从测试数据看,该技术优化了主机侧性能并提高了存储系统的可预测性,特别适用于共享环境中的 NVMe 存储。