The real-world achievable SSD performance will vary depending on factors like IO size, queue depth and even CPU clock speed. It’s useful to know what the SSD is capable of delivering in the actual environment in which it’s used. I always start by looking at the performance claimed by the manufacturer. I use these figures to bound what is achievable. In other words, treat the manufacturer specs as “this device will go no faster than…”.
Identify SSD
Start by identifying the exact SSD type by using lsscsi. Note that the disks we are going to test are connected by ATA transport type, therefore the maximum queue depth that each device will support is 32.
# lsscsi
[1:0:0:0] cd/dvd QEMU QEMU DVD-ROM 2.5+ /dev/sr0
[2:0:0:0] disk ATA SAMSUNG MZ7LM1T9 404Q /dev/sda
[2:0:1:0] disk ATA SAMSUNG MZ7LM1T9 404Q /dev/sdb
[2:0:2:0] disk ATA SAMSUNG MZ7LM1T9 404Q /dev/sdc
[2:0:3:0] disk ATA SAMSUNG MZ7LM1T9 404Q /dev/
The marketing name for these Samsung SSD’s is “SSD 850 EVO 2.5″ SATA III 1TB“
Identify device specs
The spec sheet for this ssd claims the following performance characteristics.
Workload (Max) | Spec | Measured |
Sequential Read (QD=8) | 540 MB/s | 534 |
Sequential Write (QD=8) | 520 MB/s | 515 |
Read IOPS 4KB (QD=32) | 98,000 | 80,00 |
Write IOPS 4KB (QD=32) | 90,000 | 67,000 |
Measurement script
All results are measured using this script : measure_device.sh. which ultimately calls fio.
Measured Results
The measured results are quite close to the figures claimed in the spec sheet. The differences between what I observed Vs the claimed performance is probably due to a modest 2.4Ghz in my server compared to a likely 3.0Ghz CPU used to generate the reference data.
Sequential Read. 1MB IO, QD=16, 531 MB/s
READ: bw=506MiB/s (531MB/s), 506MiB/s-506MiB/s (531MB/s-531MB/s), io=14.8GiB (15.9GB), run=30031-30031mse
Sequential Write. 1MB IO QD=16 515 MB/s
WRITE: bw=491MiB/s (515MB/s), 491MiB/s-491MiB/s (515MB/s-515MB/s), io=14.4GiB (15.5GB), run=30030-30030msec
Random Read 4KB IO QD=32, 80K
read: IOPS=79.5k, BW=310MiB/s (325MB/s)(9312MiB/30001msec)
Random Write 4KB IO QD=32, 67K
write: IOPS=67.1k, BW=262MiB/s (275MB/s)(7858MiB/30001msec)
CPU Is Intel 2.4 Ghz
model name : Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz