什麼是 PCI-E , NVMe
傳統機械讀寫磁頭式的硬碟速度不快,大約 70-80MBs (7200rpm) 左右,使用 SATA 介面就已經足夠.
SATA – (20% overhead – 每八個位元的資料串上用十位元來加以編碼)
- Generation 1 (1.5 Gbit/s ,20% overhead) = 1.2 Gbit/s = 150 MByte/s
- Generation 2 (3 Gbit/s ,20% overhead) = 2.4 Gbit/s = 300 MByte/s
- Generation 3 (6 Gbit/s ,20% overhead) = 4.8 Gbit/s = 600 MByte/s
但 SSD 的單顆硬碟速度可以快達 500MBs 以上了,所以傳統的 SATA 介面的速度頻寬可能無法趕的上,所以 SATA-IO 制訂了 SATA Express™ 的介面(從SATA 3.2/SATA Express起,SATA將改為透過 PCI-E 3.0 的方式),主要是借由 PCI-E 的高速頻寬.
圖片出自於 : https://www.sata-io.org/ sites/default/files/images/ NVMe_and_AHCI_as_SATA_Express_Interface_Options_Overview_final.pdf
左邊是傳統的 Legacy SATA,右邊是新的 SATA Express 不過最底層的有分為 AHCI(Advanced Host Controller Interface) Controller,以及 Intel 主導的 NVME(Non-Volatile Memory express) Controller.
詳細關於 SATA Express , NVMe 可以參考 https://benjr.tw/73607 , https://benjr.tw/55245
傳統的 SATA / SAS Link Speed 可以透過 #smartctl -l sasphy 就可以檢視 SAS 硬碟 Link Speed (SATA 指令為 sataphy)
[root@localhost ~]# smartctl -l sasphy /dev/sdb
[root@localhost ~]# smartctl -l sataphy /dev/sdb
其他方式請參考 https://benjr.tw/80914
那要如何檢視 NVME (透過 PCI-E) 的 SSD 硬碟速度呢!
測試環境為 CentOS7 x86_64
既然是 PCI-E 裝置,可以透過 #lspci 來檢視 PCI-E 裝置速度,關於 #lspci 的使用請參考 https://benjr.tw/10842 .
PCI-SIG 的 PCI Express 3.0 匯流排的速度規格,新版每條 Lane 的單向頻寬增到 8Gbps,但因為編碼方式改變了,相較於 2.0 之前採用 8b/10b (每10個bit只有8個是有效資料)而 3.0 編碼方式為 128/130,所以資料傳輸頻寬以及原始傳輸率基本當都可以算成 8Gbps.
- x1 8Gbps (1GB/sec)
- x4 32Gbps (4 GB/sec)
- x8 64Gbps (8 GB/sec)
- x16 128Gbps (16 GB/sec)
[root@localhost ~]# lspci -n -d 1077:2432 -vvv |grep -i width LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L0s, Latency L0 <1us, L1 unlimited LnkSta: Speed 8GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- LnkCap: Port #0, Speed 8GT/s, Width x4, ASPM L0s, Latency L0 <1us, L1 unlimited LnkSta: Speed 8GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
- LnkCap :
CPU 所提供的最高頻寬 PCI-Express 3.0 ( 8G ) Width x4=32Gbps (4 GB/sec) . - LnkSta :
目前該 PCI-E 裝置的速度 PCI-Express 3.0 ( 8G ) Width x4=32Gbps (4 GB/sec) ,主要就是看這個來決定 PCI-E NVMe 硬碟介面的速度.
LnkSta 和 LnkCap 的 Speed 與 Width 有可能會不一樣.
雖然頻寬這麼大,但不代表你的硬碟效能會這麼好,可以利用 Fio 來進行測試 https://benjr.tw/269