Technical guide

Benchmarking 201

Enterprise SSD testing from my enterprise test runs: the job files, steady state and tail latency, results across drives and flash types, and how published reviews compare.

Benchmarking 201 picks up where Benchmarking 101 stops, with the tests enterprise drives are bought on. Part 1 builds a repeatable job in fio and Iometer. Part 2 covers preconditioning to steady state and reading latency as percentiles. Part 3 sets my enterprise test runs side by side, from NAND drives to Optane. Part 4 reads published reviews of the same drives against those runs.

The series

Read in order

Each part builds on the one before, so start with Part 1.

What a benchmark job file fixes: the access spec, the load and the clockA three-panel cover. Left: an access spec written as job file lines, the transfer size, the read share and the random or sequential pattern, as fio names them bs, rwmixread and rw. Center: the load, a grid of worker columns by rows of outstanding I/Os, which fio sets as numjobs times iodepth. Right: the clock, a ramp that is not recorded followed by the recorded run, set by ramp_time and runtime. Drawing is schematic.GUIDE / BENCHMARKING 201, PART 1A job anyone can rerunSPEC · LOAD · CLOCK01 SPEC02 LOAD03 CLOCK[job]bsrwmixreadrwWhat each I/O issize, read share,random or sequentialnumjobs × iodepthHow many in flightworkers timesoutstanding I/Osramprecordedramp_time, runtimeWhen it countswarm up, then recordDrawing is schematic

Part 1

Building a Repeatable Benchmark Job

How a benchmark job file pins block size, read mix, queue depth, ramp, runtime and preconditioning, in Iometer and in fio, so a run can be repeated and checked.

Read Part 1
Steady state and tail latency: rounds that settle, a latency histogram, and the slow end an average hidesA three-panel cover. Left: a tracked result falling over the first rounds and then flat, with the last rounds inside a window box. Center: a latency histogram with one tall bucket and short buckets on either side. Right: a distribution's average marked near its peak and a long thin tail running to the right, the slow I/Os the average hides.GUIDE / BENCHMARKING 201, PART 2Steady first, then the tailROUNDS · BUCKETS · TAIL01 ROUNDS02 BUCKETS03 TAILSettle firstjudged on last roundsCount bucketspercentile estimatesaverageslowestRead the tailwhere averages hide

Part 2

Steady State and Tail Latency

When a preconditioned SSD is ready to measure under the SNIA test specification, and how to report its latency past the average with percentiles and QoS.

Read Part 2
The same Iometer job run on three enterprise SSDs, compared across queue depthA three-panel cover. Left: one job file listing its settings, transfer size, read share, randomness, workers times outstanding I/Os, and ramp and run times. Center: the three drives it ran on, a Micron 9100 MAX add-in card, a Kingston DCP1000 add-in card drawn as four small M.2 drives on one board, and an Intel DC P4510 2.5-inch drive. Right: a queue depth axis from QD1 to QD256 with two curves, a write rate that climbs and then goes flat, and a wait time that keeps rising after the rate stops.GUIDE / BENCHMARKING 201, PART 3One job, three enterprise drivesJOB FILE · DRIVES · QUEUE DEPTH01 ONE JOB02 THREE DRIVES03 DEPTHsize 4KiBreads 0 to 100%random 100%workers × I/Osramp, run, repeat9100 MAX cardDCP1000, 4 drivesP4510 U.2QD1QD256ratewait

Part 3

Three Enterprise SSDs on One Test Method

My Iometer runs on a Micron 9100 MAX, a Kingston DCP1000 and an Intel DC P4510, compared at matched queue depths and mixes, with latency read beside IOPS.

Read Part 3
Reading published enterprise SSD reviews beside my enterprise test runs: the job, the chart and the matchA three-panel cover. Left: a job card listing the settings a review should state: tool, block size, queue depth, preparation, span and host. Center: a review's bar chart with a hollow ring marking one reviewer's value. Right: two rising curves that level off and lie almost on top of each other, a review's run and the author's at matched settings. Drawing is schematic.GUIDE / BENCHMARKING 201, PART 4Reading the reviewsTHE JOB · THE CHART · THE MATCH01 THE JOB02 THE CHART03 THE MATCHtoolblock sizequeue depthpreparationspanhostWhat was runstated in the textor missing from itWhat it showsa peak, a stepor a steady stateWhere it matchesmy run beside theirsDrawing is schematic

Part 4

Reading Published Enterprise SSD Reviews

How five enterprise SSD reviews tested their drives, where their numbers match my Iometer runs at matched settings, and how to read any review’s chart.

Read Part 4

On this site

Where it connects