[元带你学NVMe协议] NVMe 命令仲裁机制, 如何兼顾效率与公平?

 传送门:  >>>  总目录

全文4400 字, 预计阅读时间 15 分钟

1 仲裁

现代高性能ssd能够容纳来自多个租户的并行I/O请求,ssd的带宽和容量的巨大增加使其能够在单个存储设备中为来自多个独立工作负载(或租户)的I/O请求提供服务。因此,SSD性能的公平共享对于在多个应用程序或租户之间提供性能隔离非常重要。
在许多比例共享I/O调度器中,基于虚拟时间的公平队列由于其节省工作的特性而成为SSD的一个有吸引力的解决方案。它们可以最大化SSD吞吐量,而每个租户实现的带宽与租户的权重成正比。
 


1 概念

先回顾下NVMe 中的命令仲裁机制,在NVMe Spec没有规定Command存入SQ队列的执行顺序,Controller可以一次取出多个Command进行批量处理。一个SQ队列中的Command执行顺序是不固定,同时在多个SQ队列之间的Command执行顺序也不固定,这就涉及到了NVMe Spec定义的命令仲裁机制。

NVMe

lock