NVMe比SATA接口的SSD究竟快在哪里?

转载: 知乎 2018-10-31
阅读量 4610

作为一般消费者,在京东上会看到各种M.2接口的固态硬盘往往会无所适从,不知道选择什么好。尤其是有的SSD写得支持SATA协议,有的是支持NvME,到底选择哪种好呢?

NVMe作为新出现的技术,它当然比SATA的SSD硬盘要快,延迟要小。尤其现在SATA接口无疑构成了SSD速度的瓶颈。

今天我们就从技术的层面来了解一下为什么NVMe比SATA快,快多少。并对一般消费者如何选择做一个方向性的指导。

技术分析

我们来看一下他们的对比:

走SATA协议的M.2 SSD会被连接到南桥的SATA port上,在其上走传统的AHCI协议栈(SCSI的一个子集),漫长而延迟很高。AHCI只有1个命令队列,队列深度32,如果发生大量小文件操作,就会发生拥堵。

走NVMe的SSD,直接走PCIe通道,协议栈很浅。而NVMe可以有65535个队列,每个队列都可以深达65536个命令。NVMe也充分使用了MSI的2048个中断向量优势,延迟大大减小,尤其大量小文件时速度更是飞快。

从操作系统的协议栈本身来看:

AHCI还是基于传统的块传输。而NVMe使用了一种叫做“Doorbell”的机制来充分利用了极长的队列,大大减小了延迟。

数据

我们来一起看一下具体的数据。首先来看NVMe如何减小了协议栈本身的时间消耗,我们用blktrace工具来分析一组传输在应用程序层、操作系统层、驱动层和硬件层消耗的时间和占比,来了解AHCI和NVMe协议的性能区别:

硬盘HDD作为一个参考基准,它的时延是非常大的,达到14ms,而AHCI为125us,NVMe为111us。我们从图中可以看出,NVMe相对AHCI,协议栈及之下所占用的时间比重明显减小,应用程序层面等待的时间占比很高,这是因为SSD物理硬盘速度不够快,导致应用空转。NVMe也为将来Optane硬盘这种低延迟介质的速度提高留下了广阔的空间。

在实际使用情况如何呢?我们以MySQL数据库来说:

1)是一个SATA SSD硬盘,杂草丛生的绿色表面大量时间在等待。

2)是四个SATA SSD组成了RAID,等待时间减小了不少。

3)是一个NVMe的硬盘,几乎看不到绿色了,几乎不再等待。

4)是RAM disk,绿色完全没有了,用户态占比很高。

从上面的分析,我们可以看出NVMe相对SATA协议,在软件和硬件上做了巨大优化,大大减小了协议栈的无谓消耗(overhead),提高了响应度。

结语

对性能十分敏感的服务器市场已经越来越多的使用NVMe了:

那么对于一般消费者呢?当然是尽量选择NVMe了,尤其是SATA的M.2价格相对并不便宜,存在仅仅是为了适用于老的主板。

有些主板做了特殊处理,BIOS根据插入的M.2硬盘不同,可以走PCH的SATA通道或者走PCIe通道支持NVMe,这时一定要买NVMe的SSD。这么做BIOS需要修改不少,有些主板厂商或主板厂商的BIOS承包商为了简单和一些安全考虑,出厂时限定了支持哪种,这时就需要阅读主板说明书,别买错了,就只能退货了。当然老的主板只支持SATA的接口,就无从选择了。

1.本文整理自网络,如有侵权,请联系删除。

2.所刊内容仅代表作者观点,非闪德资讯立场。

我的评论

登录后评论

最新评论

渠道报价
查看更多

D4/32G-DDR 4

  • 一年
  • 半年
  • 三个月
  • 一个月

微信订阅

APP下载

存储未来,赢得先机

18126200184

Copyright©2008-2024 闪德资讯 版权所有 粤ICP备18080549号-1

粤公网安备 44030402002744号