NVM Express (NVMe) devices are flash memory chips connected to a system via the PCI-E bus. They are among the fastest memory chips available on the market, faster than Solid State Drives (SSD) connected over the SATA bus.
NVM Express block device (CONFIG_BLK_DEV_NVME) must be activated to gain NVMe device support:
Device Drivers ---> <*> NVM Express block device
Devices will show up under /dev/nvme*.
Identifying the device
There are minor differences in the naming scheme for devices and partitions when compared to SATA devices.
NVMe partitions generally show a p before the partition number. NVMe devices also include namespace support, using a n before listing the namespace. Therefore the first device in the first namespace with one partition will be at the following location: /dev/nvme0n1p1. The device name is nvme0, in namespace 1, and partition 1.
Hdparm can be used to get the raw read/write speed of a NVMe device. Passing the
-t option instructs hdparm to perform timings of device reads,
-T performs timings of cache reads, and
--direct bypasses the page cache and causes reads to go directly from the drive into hdparm's buffers in raw mode:
hdparm -tT --direct /dev/nvme0n1
Performance and maintenance
Since NVMe devices share the flash memory technology basis with common SSDs, the same performance and longevity considerations apply. For details consult the SSD article.
- SSD — provides guidelines for basic maintenance, such as enabling discard/trim support, for SSDs (Solid State Drives) on Linux.
- https://medium.com/@metebalci/a-quick-tour-of-nvm-express-nvme-3da2246ce4ef - An excellent article describing the differences in recent disk drive technology, but focusing on NVMe.