Benchmarking 101

SSD Benchmarking 101, Part 5: How Many Runs Make a Result

How much an SSD benchmark moves from one pass to the next, how many passes a result needs, and when a gap between two drives is real.

On this page 5 sections

Part 2 of this series asked for at least three runs of each synthetic tool, and it treated runs that vary by more than 5% as a sign that the test environment isn’t under control, while Part 3 ran each PCMark 10 trace more than once. This part checks that rule against the same tests repeated on 84 retail drives from my test bench, and measures how far the passes actually landed from each other.

The same SSD test run several times, the spread of its passes, and two drives whose spreads overlapA three-panel cover. Left: four rows labeled pass 1 to pass 4, the same test run again. Center: four pass results of one drive as dots along a value line, with a bracket from the lowest to the highest marked spread. Right: two drives, A and B, each drawn as a band from its lowest to its highest pass with its median marked, and the two bands overlap, so the gap between them is a tie.ARTICLE / BENCHMARKING 101, PART 5One pass is not a resultRUN AGAIN · SPREAD · A TIE01 RUN AGAIN02 SPREAD03 A TIEpass 1pass 2pass 3pass 4spreadresultdrive Adrive Boverlap = tie

Most results barely moved. Sequential reads at queue depth 1 and the two trace-based scores moved enough, on enough drives, to cover the gap between two similar products.

The same test, run again

Each drive got 9 CrystalDiskMark 8.0.4 runs in one session, all on the Default profile with a 1GiB test and a count of 2. Most runs swept block size or thread count, and only some held the standard rows, so SEQ1M Q8T1 came up in two runs, SEQ1M Q1T1 in three and RND4K Q1T1 in four. A repeated row sat beside different tests in each run, so its spread may include some effect of those neighbors as well as plain run-to-run noise. I also ran PCMark 10 Storage Full and 3DMark Storage three times each on 83 of the drives.

Inside one run, CrystalDiskMark doesn’t average. Its source code does one extra internal pass first and throws it away, then shows the highest score of the rest, so each figure here is already the better of 2 internal passes. From here on, a pass means one run’s figure, and the spread is between those runs.

For every drive and test I took the highest pass minus the lowest, as a share of the median, and call that the spread here. A small spread means the passes all landed close together. When two drives differ by less than their own spreads, those runs can’t rank them.

The same test, run again

Each test ran two to four times on every drive

Passes per drive in the run-to-run set, 84 retail drives (83 for the trace tests)

A vertical bar chart of how many passes of each test every drive has: CrystalDiskMark SEQ1M Q8T1 twice, SEQ1M Q1T1 three times and RND4K Q1T1 four times on 84 drives, and PCMark 10 Storage Full and 3DMark Storage three times each on 83 drives.Passes per drive012342SEQ1MQ8T13SEQ1MQ1T14RND4KQ1T13PCMark 10Storage Full33DMarkStorageTestCrystalDiskMark rowTrace-based test
Figure 5.1 · CrystalDiskMark rows repeat because each session ran several test sets; the two trace tests ran three passes each. Source: my test bench, CrystalDiskMark and UL results files.

Most results barely moved

Five of the six CrystalDiskMark rows had a median spread of 0.34% or less. SEQ1M Q8T1 reads were the steadiest, at 0.09% over two passes. RND4K Q1T1 reads had a median of 0.29% over four, and RND4K Q1T1 writes 0.34% over four. The widest drive on that write row reached 3.68%, and none went past 5%.

A median hides the odd drive, such as one whose RND4K Q1T1 reads spread 87.23% across four passes and another whose SEQ1M Q8T1 reads spread 49.58% across two. One pass on either could have landed anywhere in that range, and nothing in the screenshot would say so. A highest-minus-lowest spread also tends to grow with the number of passes, so a row measured four times can show more spread than one measured twice for that reason alone.

Most results barely moved

Most CrystalDiskMark rows moved well under 1% between passes

Median spread between passes, highest minus lowest as a share of the median, 84 drives

A horizontal bar chart of the median run-to-run spread for six CrystalDiskMark rows across 84 drives: SEQ1M Q1T1 read 2.6%, RND4K Q1T1 write 0.34%, RND4K Q1T1 read 0.29%, SEQ1M Q1T1 write 0.23%, SEQ1M Q8T1 write 0.14% and SEQ1M Q8T1 read 0.09%.CrystalDiskMark row0123Median spread between passes, %SEQ1M Q1T1 read2.6%RND4K Q1T1 write0.34%RND4K Q1T1 read0.29%SEQ1M Q1T1 write0.23%SEQ1M Q8T1 write0.14%SEQ1M Q8T1 read0.09%ReadWrite
Figure 5.2 · Five of the six rows had a median spread of 0.34% or less; sequential reads at QD1 were the exception at 2.6%. Source: my test bench, CrystalDiskMark rows repeated across separate runs in one session.

Sequential reads at QD1 moved the most

SEQ1M Q1T1 reads didn’t behave like the other rows. Their median spread was 2.6% over three passes, and the 90th percentile reached 13.89%. Of 84 drives, 45 spread more than 2% and 23 more than 5%.

My data can’t say why this row moves so much, but it’s the CrystalDiskMark result I’d trust least from one pass, and the one where a review’s screenshot and a reader’s own run are most likely to disagree.

Sequential reads at QD1 moved the most

Sequential QD1 reads spread past 5% on 23 of 84 drives

Drives whose read passes spread more than each threshold, of 84 drives

A line chart of how many of 84 drives had read passes spread more than 1%, 2% and 5%. SEQ1M Q1T1 reads: 58, 45 and 23 drives. RND4K Q1T1 reads: 11, 7 and 3 drives. SEQ1M Q8T1 reads: 11, 5 and 2 drives.Drives, of 84015304560over 1%over 2%over 5%Spread between passesSEQ1M Q1T1 readRND4K Q1T1 readSEQ1M Q8T1 read
Figure 5.3 · 45 drives spread more than 2% on SEQ1M Q1T1 reads, against 7 on RND4K Q1T1 reads and 5 on SEQ1M Q8T1 reads. Source: my test bench, CrystalDiskMark rows repeated across separate runs in one session.

Trace scores moved more than most synthetic rows

PCMark 10 Storage Full had a median spread of 1.37% over three passes, and 3DMark Storage 1.73%. At the 90th percentile they reached 3.65% and 5.43%. Of 83 drives, 24 spread more than 2% in PCMark 10 and 36 did in 3DMark. Only 4 and 12 spread more than 5%.

Part 3 treats these scores as the closest thing to daily use, and they still are, but each one needs its passes beside it.

Trace scores moved more than most synthetic rows

Trace scores moved several times more than most synthetic rows

Spread between three passes of the overall score, 83 drives

A horizontal bar chart of the spread between three passes of each trace test's overall score on 83 drives. PCMark 10 Storage Full: 1.37% for the median drive and 3.65% at the 90th percentile. 3DMark Storage: 1.73% for the median drive and 5.43% at the 90th percentile.Test and drive0246Spread between passes, %PCMark 10, median drive1.37%PCMark 10, 90th percentile3.65%3DMark, median drive1.73%3DMark, 90th percentile5.43%Median drive90th percentile drive
Figure 5.4 · PCMark 10 Storage Full spread 1.37% on the median drive and 3DMark Storage 1.73%; one drive in ten went past 3.65% and 5.43%. Source: my test bench, UL PCMark 10 and 3DMark results files.

When a gap between two drives is real

Set any gap against the spread before calling a winner. On 24 of my 83 drives, PCMark 10’s own passes spread more than 2%, so a 2% lead over another drive could come down to which pass got reported. On 23 of 84 drives, a 5% gap in SEQ1M Q1T1 reads sits inside the drive’s own spread.

That also tests Part 2’s rule. On most rows, passes within 5% of each other were the normal result. On SEQ1M Q1T1 reads, 23 of 84 drives went past it on the same bench, so on that row a wide spread doesn’t prove the setup is at fault.

When a gap between two drives is real

A 2% lead can be noise on many drives in three of these tests

Drives whose own passes spread more than 2%

A vertical bar chart of how many drives had passes spreading more than 2% in each test: 5 of 84 for SEQ1M Q8T1 reads, 7 of 84 for RND4K Q1T1 reads, 45 of 84 for SEQ1M Q1T1 reads, 24 of 83 for PCMark 10 Storage Full and 36 of 83 for 3DMark Storage.Drives spreading more than 2%015304560of 845SEQ1M Q8T1readof 847RND4K Q1T1readof 8445SEQ1M Q1T1readof 8324PCMark 10Storage Fullof 83363DMarkStorageTestCrystalDiskMark rowTrace-based test
Figure 5.5 · On these drives a 2% gap to another drive sits inside the drive’s own spread: 45 of 84 for SEQ1M Q1T1 reads, 36 of 83 for 3DMark and 24 of 83 for PCMark 10. Source: my test bench, CrystalDiskMark and UL results files.

These rules follow from that, for my own runs and for reading anyone else’s:

  • Run each test more than once and report the median of the passes, which one slow or fast pass can’t move. My data shows the spread at two to four passes; it doesn’t show how many passes are enough.
  • Report the spread beside the median, or at least the lowest and highest pass.
  • Treat a gap smaller than either drive’s own spread as a tie.
  • Rerun a test whose passes look far apart before trusting any one of them.

With those rules, any two results can be set side by side and the gap judged as real or as a tie. The enterprise series asks the same question of server drives, where steady state asks the same question of one long run instead of several short ones.

Sources

Primary is the original paper, standard or datasheet. Secondary is a review, a vendor summary or a news report. Measured is my own test data.

Show all 2 sources, 1 primary