# Solid State Drives/NVMe

< Solid State Drives

Related articles

- Solid State Drives

NVM Express (NVMe) is a specification for accessing SSDs attached through the PCI Express bus. As a logical device interface, NVM Express has been designed from the ground up, capitalizing on the low latency and parallelism of PCI Express SSDs, and mirroring the parallelism of contemporary CPUs, platforms and applications.

## Installation

The Linux NVMe driver is natively included in the kernel since version 3.3. NVMe devices should show up under `/dev/nvme*`.

Extra userspace NVMe tools can be found in nvme-cli-gitAUR.

See Solid State Drives for supported filesystems, maximizing performance, minimizing disk reads/writes, etc.

Note: It may be needed to add the nvme module to the MODULES array within `/etc/mkinitcpio.conf` to successfully boot into the root filesystem.

## Performance

### Sector size

See Advanced Format#How to determine if HDD employ a 4k sector.

### Discards

Note: Contrary to recommendations for SSDs, NVMe devices should not be issued discards.

Discards are disabled by default on typical setups that use ext4 and LVM, but other filesystems might need discards to be disabled explicitly.

Intel, as one device manufacturer, recommends not to enable discards at the filesystem level, but suggests the Solid State Drives#Periodic TRIM method, or apply fstrim manually.[1]

### Airflow

NVMe SSDs are known to be affected by high operating temperatures and will throttle performance over certain thresholds.[2]

### Testing

Raw device performance tests can be run with hdparm:

    # hdparm -Tt --direct /dev/nvme0n1

## Power Saving APST

### NVME Power Saving Patch

Andy Lutomirski has released version 4 of his patchset which fixes powersaving for NVME devices in linux. Currently, this patch is not merged into mainline yet. Until it lands in mainline kernel use the AUR package below. Linux-nvme — Mainline linux kernel patched with Andy's patch for NVME powersaving APST.

  https://github.com/damige/linux-nvme || linux-nvmeAUR

## References

- Intel Linux NVMe driver reference

Category:

- Storage