作為一般消費(fèi)者,在京東上會(huì)看到各種M.2接口的固態(tài)硬盤(pán)往往會(huì)無(wú)所適從,不知道選擇什么好。尤其是有的SSD寫(xiě)得支持SATA協(xié)議,有的是支持NvME,到底選擇哪種好呢?
NVMe作為新出現(xiàn)的技術(shù),它當(dāng)然比SATA的SSD硬盤(pán)要快,延遲要小。尤其現(xiàn)在SATA接口無(wú)疑構(gòu)成了SSD速度的瓶頸,今天我們就從技術(shù)的層面來(lái)了解一下為什么NVMe比SATA快,快多少。并對(duì)一般消費(fèi)者如何選擇做一個(gè)方向性的指導(dǎo)。
我們來(lái)看一下他們的對(duì)比:
走SATA協(xié)議的M.2 SSD會(huì)被連接到南橋的SATA port上,在其上走傳統(tǒng)的AHCI協(xié)議棧(SCSI的一個(gè)子集),漫長(zhǎng)而延遲很高。AHCI只有1個(gè)命令隊(duì)列,隊(duì)列深度32,如果發(fā)生大量小文件操作,就會(huì)發(fā)生擁堵。
走NVMe的SSD,直接走PCIe通道,協(xié)議棧很淺。而NVMe可以有65535個(gè)隊(duì)列,每個(gè)隊(duì)列都可以深達(dá)65536個(gè)命令。NVMe也充分使用了MSI的2048個(gè)中斷向量?jī)?yōu)勢(shì),延遲大大減小,尤其大量小文件時(shí)速度更是飛快。
從操作系統(tǒng)的協(xié)議棧本身來(lái)看:
AHCI還是基于傳統(tǒng)的塊傳輸。而NVMe使用了一種叫做“Doorbell”的機(jī)制來(lái)充分利用了極長(zhǎng)的隊(duì)列,大大減小了延遲。
我們來(lái)一起看一下具體的數(shù)據(jù)。首先來(lái)看NVMe如何減小了協(xié)議棧本身的時(shí)間消耗,我們用blktrace工具來(lái)分析一組傳輸在應(yīng)用程序?qū)?、操作系統(tǒng)層、驅(qū)動(dòng)層和硬件層消耗的時(shí)間和占比,來(lái)了解AHCI和NVMe協(xié)議的性能區(qū)別:
硬盤(pán)HDD作為一個(gè)參考基準(zhǔn),它的時(shí)延是非常大的,達(dá)到14ms,而AHCI為125us,NVMe為111us。我們從圖中可以看出,NVMe相對(duì)AHCI,協(xié)議棧及之下所占用的時(shí)間比重明顯減小,應(yīng)用程序?qū)用娴却臅r(shí)間占比很高,這是因?yàn)镾SD物理硬盤(pán)速度不夠快,導(dǎo)致應(yīng)用空轉(zhuǎn)。NVMe也為將來(lái)Optane硬盤(pán)這種低延遲介質(zhì)的速度提高留下了廣闊的空間。
在實(shí)際使用情況如何呢?我們以MySQL數(shù)據(jù)庫(kù)來(lái)說(shuō):
1)是一個(gè)SATA SSD硬盤(pán),雜草叢生的綠色表面大量時(shí)間在等待。
2)是四個(gè)SATA SSD組成了RAID,等待時(shí)間減小了不少。
3)是一個(gè)NVMe的硬盤(pán),幾乎看不到綠色了,幾乎不再等待。
4)是RAM disk,綠色完全沒(méi)有了,用戶(hù)態(tài)占比很高。
從上面的分析,我們可以看出NVMe相對(duì)SATA協(xié)議,在軟件和硬件上做了巨大優(yōu)化,大大減小了協(xié)議棧的無(wú)謂消耗(overhead),提高了響應(yīng)度。
對(duì)性能十分敏感的服務(wù)器市場(chǎng)已經(jīng)越來(lái)越多的使用NVMe了:
那么對(duì)于一般消費(fèi)者呢?當(dāng)然是盡量選擇NVMe了,尤其是SATA的M.2價(jià)格相對(duì)并不便宜,存在僅僅是為了適用于老的主板。
有些主板做了特殊處理,BIOS根據(jù)插入的M.2硬盤(pán)不同,可以走PCH的SATA通道或者走PCIe通道支持NVMe,這時(shí)一定要買(mǎi)NVMe的SSD。這么做BIOS需要修改不少,有些主板廠商或主板廠商的BIOS承包商為了簡(jiǎn)單和一些安全考慮,出廠時(shí)限定了支持哪種,這時(shí)就需要閱讀主板說(shuō)明書(shū),別買(mǎi)錯(cuò)了,就只能退貨了。當(dāng)然老的主板只支持SATA的接口,就無(wú)從選擇了。
聯(lián)系客服