n0derunner

    How to identify SSD types and measure performance.

    Published: (Updated: ) in Storage Performance, , , by .

    Thomas Springer / CC0
    Generic SSD Internal Layout

    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)SpecMeasured
    Sequential Read (QD=8)540 MB/s534
    Sequential Write (QD=8)520 MB/s515
    Read IOPS 4KB (QD=32)98,00080,00
    Write IOPS 4KB (QD=32)90,00067,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