NVMe(非易失性內存表達)被認為徹底改變了閃存存儲。它基于PCIe卡插槽格式,允許閃存驅動器通過PCIe插槽和標準化的連接方式進行連接,取代了專有卡協議和現有的SAS和SATA驅動器堆棧。
NVMe的主要魅力在于,它大大增加了I/O隊列數量和隊列深度。
為什么說NVMe是革命者? 我們一起來探一究竟。 首先,我們來看看什么是隊列深度。
作為基本概念,隊列深度的意思不言自明,即可以在端口隊列中等待服務的I/O請求數量。SAS和SATA可以分別處理254和32的隊列深度。如果I/O請求的數量超過了最大隊列深度,則該事務將在一段時間后無法重新嘗試。當你認為具有高扇出比率的存儲端口可以為多個主機提供服務時,可以快速達到SAS和SATA的隊列深度數據。
存儲專業知識的一個關鍵領域是,調整存儲基礎架構,以確保隊列處理能力與主機需求相匹配,并且適當地設置扇出和扇入比。
但這或許已經成為過去,現在NVMe能夠處理高達65,000的隊列深度。因此NVMe在大大增加隊列深度方面是一個重要的進步。
使用SAS和SATA,排隊的I/O請求數量很容易成為瓶頸。為了避免I/O請求由于超出隊列深度而失敗,你必須創建許多HDD的LUN,以便所有I/O都能夠快速進行。
隨著閃存驅動器運行在數十或數百倍的IOPS以及旋轉磁盤HDD的吞吐量,吸收I/O請求的性能更為顯著,而NVMe提供的65,000隊列深度容量使驅動器連接符合此要求。
然而,在大多數情況下,現在和在不久的將來,這些屬于理論范疇。NVME的巨大隊列處理能力可以直接傳遞I/O流量——完全消除瓶頸。
不幸的是,存儲陣列控制器通常仍然存在瓶頸,主要部分尚未構建以處理NVMe可能的性能。控制器CPU功能與NVMe的潛在性能不匹配。
所以,現在一定要提升你的I/O調整技巧,調整風扇和扇出比,隊列深度等等。