microsoft / StorScore

A test framework to evaluate SSDs and HDDs
http://aka.ms/storscore
MIT License
79 stars 40 forks source link

4k_RR Recipe inconsistency #38

Closed jetOak closed 7 years ago

jetOak commented 7 years ago

I've been running the 4k_RR StorScore recipe on various drives and I have came across this issue:

results_image

For most drives that I have tested the test description reads "4K_Random_Reads-step-4" however for a few other drives the test description reads as "4K_Random_Reads-step-2". I selected the 4K_RR recipe each time. Is there a reason for this inconsistency?

2s

4s

marksantaniello commented 7 years ago

We have auto-detect logic for HDD vs SSD. In the former case, we don't bother preconditioning since it has little value. The output (just prior to your screen shots) should include the result of our auto-detection. If it fails for some reason, you can always override it on the command line with --target_type=ssd|hdd

jetOak commented 7 years ago

Both of these tests were performed on SATA SSDs. Is there a reason why the program would detect an SSD as an HDD?

marksantaniello commented 7 years ago

It's been a while, but what I recall is that there is a standard field in the response to the SATA IDENTIFY command that states something about the "rotation rate" or "rotational latency" of the (presumed) HDD. Once SSDs appeared on the scene, the standard was amended to say something like, "SSDs should just return 1 for this field" or similar.

So that's the underlying mechanism.

If you have some kind of weird SAS adapter in the middle, or maybe you've got all the devices behind a RAID card, or a hybrid device which is neither pure SSD or HDD, or some strange driver, or broken SSD firmware -- any number of reasons -- the response might be incorrect.

So we announce the result of the auto-detection and provide --target_type to override in case it's wrong. The alternative was to require --target_type all the time, which is annoying, since usually we get it right.

jetOak commented 7 years ago

Your suggestion fixed the issue. Thank you for the information and the assistance.

lauracaulfield commented 7 years ago

For the interested reader -- here is the logic for determining whether the drive is SSD or HDD: https://github.com/Microsoft/StorScore/blob/master/lib/Target.pm#L173