Start by identifying the NVME drive type (“nvme list“) since the NVME drives use the nvme protocol, they will not sshow up in the output of lsscsi
Identify NVME
Identify the nvme drives using “nvme list”
nutanix@NTNX-18SM3E420118-A-CVM:10.56.6.36:~/tmp$ sudo nvme list
Node SN Model Version Namespace Usage Format FW Rev
/dev/nvme0n1 S3HDNX0KC00137 SAMSUNG MZWLL1T6HEHP-00003 1.2 1 1.60 TB / 1.60 TB 512 B + 0 B GPNA6B3Q
/dev/nvme1n1 S3HDNX0KC00140 SAMSUNG MZWLL1T6HEHP-00003 1.2 1 1.60 TB / 1.60 TB 512 B + 0 B GPNA6B3
The drive types identified as “MZWLL1T6HEHP-00003” the marketing name is PM1725A.
The spec sheet for the PM1725A lists the following performance characteristics
Identify device specs
Random IO size=4K, Sequential=1MB
Workload | Data Sheet Result | Measured Result |
Sequential Read | 3,300 MB/s | 3,250 MB/s (QD=8) |
Sequential Write | 2,000 MB/s | 2,200 MB/s (QD=8) |
Random Read | 800,000 IOPS | 700,000 (QD=192) |
Random Write | 140,000 IOPS | 480,000* (QD=192) |
(*) It looks to me like the spec sheet is wrong for Radom Write figures. The Random write figure for 192 outstanding is more like 480,000 IOPS. My guess is that 140,000 IOPS was for a single outstanding IO on the Samsung test rig.
Measurement Script
All results are measured using this script : measure_device.sh. which ultimately calls fio.
Measured results
Sequential Read. 1MB IO, QD=8 3,275 MB/s
READ: bw=3123MiB/s (3275MB/s), 3123MiB/s-3123MiB/s (3275MB/s-3275MB/s), io=183GiB (197GB), run=60002-60002msec
Sequential Write. 1MB QD=8 2,188 MB/s
WRITE: bw=2087MiB/s (2188MB/s), 2087MiB/s-2087MiB/s (2188MB/s-2188MB/s), io=122GiB (131GB), run=60006-60006msec
Random Read. 4KB IO, QD=192 698,000 IOPS
read: IOPS=698k, BW=2728MiB/s (2861MB/s)(160GiB/60001msec)
Random Write. 4KB IO. QD=192 477,000 IOPS
write: IOPS=477k, BW=1864MiB/s (1955MB/s)(109GiB/60001msec)
CPU Intel Xeon 2.4 Ghz
model name : Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz