microsoft / diskspd

DISKSPD is a storage load generator / performance test tool from the Windows/Windows Server and Cloud Server Infrastructure Engineering teams
MIT License
1.16k stars 216 forks source link

Lower IOPS When First Test #198

Closed sleeping-shen closed 1 year ago

sleeping-shen commented 1 year ago

I ran DiskSPD to test my SSD in SEQ Write QD64T1. The result of the first time test was lower than other time.

Itry to repeat this result in other benchmark tool(like iometer), but this phenomenon not happen in other tool. My work load as followed:

  1. Create file 1GB test filet to SSD
  2. delay 5s
  3. ran diskspd.exe -o64 -t1 -Z64K -b64K -ag -S -w100 -W1 > D:TestFile.raw (first)
  4. delay 5s
  5. repeat step 3 and 4 for 5 times

Test results:

  1. 1599.4 MiB/s
  2. 1606 MiB/s
  3. 1604 MiB/s
  4. 1605 MiB/s
  5. 1608 MiB/s

To avoid SSD in power mode, i set -W1 to pre-write it. Is OS and SSD behavior to affect test result? thanks

dl2n commented 1 year ago

This could be coming from anywhere, That aside, these results are within a half percentage point.

Handful of ideas/observations:

The default warmup (-W) is five seconds, and a 10 second write test on an SSD is nowhere near enough to reliably get to steady state operation. It makes you very vulnerable to uncontrolled behavior (inside the SSD or otherwise).

If IOMETER has no warmup interval it may be including behavior which DISKSPD is excluding with its warmup (1 or 5 seconds, or whatever you may choose next). If you want steady state, my suggestion would be to warm up for at least minute (60s) and then measure for 10s: -W60 -d10. Industry practice would be closer to five minutes warmup.

Do the same with IOMETER and the variance should be small & results repeatable.

dl2n commented 1 year ago

Closing due to no response. Please reopen if you have more questions.