暗影精灵2支持 nvm pciexpress链接状态的固态吗

扫扫二维码,随身浏览文档

手机或平板扫扫即可继续访问

聊聊QD=1:下一代非易失性存储(NG-NVM

      我热爱SSDSSD提供了高性能、低延迟的存储访问,从而彻底变革了数据中心。低延迟改变了数据中心的软件堆栈。我在随后的若干博文中将深入讨论延迟的问题,从驱动的延迟开始。

  • 驱动程序/操作系统延迟/CPU延迟

      在随后的几篇博文中,我将分别展开阐述这四种延迟。本篇博文将从第四点:驱动程序/操作系统延迟/CPU延迟开始。其中涉及的变量非常多,因此讨论会很有意思。选择哪个操作系统呢?假设选择Linux内核的哪个版本?哪一种CPUx86,ARMPowePCSparc?多少个CPU?多少个HW线程、存储子系统?如何处理中断?是采用轮询还是中断驱动?等等问题均需要一一面对。

NVMe驱动——速度是很快,但够快了吗?

      包括PMC在内的许多公司煞费苦心地将NVMe设计得速度很快,比传统的存储协议(看看单个PCIeSSD如何在OTLP数据库应用中胜出8块和4块SATA盘的配置)要快得多,但是对下一代NVMNG-NVM)而言是否够快呢?为了测试这一点,我们在一块Intelx86 CPUPMCFlashtec NVRAM加速卡之间插入了一台PCIe逻辑分析仪,进行了测量并取得了若干很有意思的结果。

SSD而言,延迟控制得非常好。下图中可以看出,我们如何将延迟控制得非常低(平均低于9us)且范围非常窄(总是优于11us)。

      SSD造成的延迟如此大的变化幅度来源于何处呢?经过深入分析,我们发现,它的根源是处理MSI-X中断及其将此中断传递回OS。许多因素可能影响到这个步骤所花费的时间,从而影响到延迟和服务质量。

      那么,我们怎么处理中断带来的延迟问题呢?有意思的是,当前有几件互不相干的事正好解决了这个问题。

  • 它采用轮询的方式查询完成队列,而不是采用MSI-X中断的方式。

  • 在用户空间中运行,避免了从内核空间跳跃到用户空间涉及到的上下文切换

      此外,还有在Linux内核的块层对块设备(包括NVMe设备)增加轮询的相关工作正在进行中。可以查阅现有的代码库。

      从中可见,SPDK和轮询驱动得到的IOPS和延迟QoS结果优于传统方案,代价是CPU负载的增加。轮询驱动比SPDK的结果略为逊色,但优点在于它与Linux内核中的块层相连,因此可以提供SDPK无法提供的服务。此外,在将轮询驱动集成到上游内核之前,Linux内核的工作群体正在努力对其进行改进。

NVRAMIntelOptaneSSD),在驱动程序和操作系统中提供I/O服务的开销也日渐显著。由于过去对存储速度较慢(中断),而现在的存储速度可能非常之快,从前的做法不再适用。这对整个计算机软件堆栈都有影响,涵盖了高速缓存,到分级存储,再到快速主要外部存储多各个领域。该一根本性的转变也带来了前所未有的机会。相关的工作正逐渐渗透到操作系统当中、应用当中,甚至电脑硬件当中。我将在下一篇博文中谈及此事。??

聊聊QD=1:下一代非易失性存储(NG-NVM

      我热爱SSDSSD提供了高性能、低延迟的存储访问,从而彻底变革了数据中心。低延迟改变了数据中心的软件堆栈。我在随后的若干博文中将深入讨论延迟的问题,从驱动的延迟开始。

  • 驱动程序/操作系统延迟/CPU延迟

      在随后的几篇博文中,我将分别展开阐述这四种延迟。本篇博文将从第四点:驱动程序/操作系统延迟/CPU延迟开始。其中涉及的变量非常多,因此讨论会很有意思。选择哪个操作系统呢?假设选择Linux内核的哪个版本?哪一种CPUx86,ARMPowePCSparc?多少个CPU?多少个HW线程、存储子系统?如何处理中断?是采用轮询还是中断驱动?等等问题均需要一一面对。

NVMe驱动——速度是很快,但够快了吗?

      包括PMC在内的许多公司煞费苦心地将NVMe设计得速度很快,比传统的存储协议(看看单个PCIeSSD如何在OTLP数据库应用中胜出8块和4块SATA盘的配置)要快得多,但是对下一代NVMNG-NVM)而言是否够快呢?为了测试这一点,我们在一块Intelx86 CPUPMCFlashtec NVRAM加速卡之间插入了一台PCIe逻辑分析仪,进行了测量并取得了若干很有意思的结果。

SSD而言,延迟控制得非常好。下图中可以看出,我们如何将延迟控制得非常低(平均低于9us)且范围非常窄(总是优于11us)。

      SSD造成的延迟如此大的变化幅度来源于何处呢?经过深入分析,我们发现,它的根源是处理MSI-X中断及其将此中断传递回OS。许多因素可能影响到这个步骤所花费的时间,从而影响到延迟和服务质量。

      那么,我们怎么处理中断带来的延迟问题呢?有意思的是,当前有几件互不相干的事正好解决了这个问题。

  • 它采用轮询的方式查询完成队列,而不是采用MSI-X中断的方式。

  • 在用户空间中运行,避免了从内核空间跳跃到用户空间涉及到的上下文切换

      此外,还有在Linux内核的块层对块设备(包括NVMe设备)增加轮询的相关工作正在进行中。可以查阅现有的代码库。

      从中可见,SPDK和轮询驱动得到的IOPS和延迟QoS结果优于传统方案,代价是CPU负载的增加。轮询驱动比SPDK的结果略为逊色,但优点在于它与Linux内核中的块层相连,因此可以提供SDPK无法提供的服务。此外,在将轮询驱动集成到上游内核之前,Linux内核的工作群体正在努力对其进行改进。

NVRAMIntelOptaneSSD),在驱动程序和操作系统中提供I/O服务的开销也日渐显著。由于过去对存储速度较慢(中断),而现在的存储速度可能非常之快,从前的做法不再适用。这对整个计算机软件堆栈都有影响,涵盖了高速缓存,到分级存储,再到快速主要外部存储多各个领域。该一根本性的转变也带来了前所未有的机会。相关的工作正逐渐渗透到操作系统当中、应用当中,甚至电脑硬件当中。我将在下一篇博文中谈及此事。??

我要回帖

更多关于 pciexpress链接状态 的文章

 

随机推荐