Windows: Wide Variation in Read Performance

2

1

I'm new when it comes to measuring i/o performance.

I found a tool called HDTune Pro, which according PCWorld is a good tool for i/o benchmarking.

This tool attempted to read 40GB, on the first run it reported an average transfer rate of 64.7 MB/s and on the second run it reported an average transfer rate of 92.7 MB/s.

Given that the two runs were reading the same amount of data and that the system load was very similar during both runs, what would explain the increase in transfer speed the second time around?

DigitalEye

Posted 2014-10-14T04:48:21.867

Reputation: 123

1Maybe disk caching? – DavidPostill – 2014-10-14T05:11:44.403

@DavidPostill: Thanks for the suggestion. How would I go about verifying if disk caching is kicking in here? – DigitalEye – 2014-10-14T05:18:21.150

1That's actually not a very "wide" variation. There are dozens of background tasks on Windows that are completely invisible and very frequently grind the HDD performing various cleanup tasks, defrag, virus scanning, etc. Unless you're able to completely eliminate all of those, it's very easy for your disk subsystem to be already busy with something when you start your benchmark. And like DavidPostill said, caching can have an impact too. Keep in mind that this is not a "wide" variation; an actual wide variation would be like 10x, or 100x difference, not just 40% or so. – allquixotic – 2014-10-14T05:18:30.973

@allquixotic: Thanks for letting me know that a ~40% difference is normal. – DigitalEye – 2014-10-14T05:21:06.797

1There can be dozens of reasons -- or no reason -- for such a tiny variation as 40%. Fragmentation of used or free space. Filesystem metadata. The number of physical seeks necessary to read the data. Sector alignment. Logical block alignment. Data fragmentation. Background tasks. Maybe the HDD is scheduled to automatically run periodic on-line SMART checks. It's impossible to pin it down without a ton of random guess and check type work, and in reality the results will not end up being very enlightening with such a tiny difference. – allquixotic – 2014-10-14T05:21:27.557

Even your worst case of 64.7 MB/s isn't too bad for a typical modern HDD. It's bad for an SSD, but it's fine for an HDD. I wouldn't worry unless you're seeing numbers below 20 MB/s or so, consistently. – allquixotic – 2014-10-14T05:23:02.253

140% would be a bit concerning if you were able to eliminate ABSOLUTELY ALL possible external factors and somehow force the HDD to perform the exact same physical operations upon the platters twice in a row but experiencing different results. But to get to that level of certainty, you'd have to completely bypass the OS (or be running an extremely minimal OS, of which Windows is definitely not one), and use a program that knows a lot about your specific HDD make and model in order to perform repeatable operations at a physical level. – allquixotic – 2014-10-14T05:26:07.320

1The I/O abstractions exposed to programs on a modern OS like Windows are so far removed from the actual operations being physically performed by the heads of the disk upon the platters, that it is impossible to write a generic, general-purpose program with no specific knowledge about any HDD, which can deterministically instruct the HDD to perform a predetermined set of physical operations. You can write such a program, but it would have to either replace the HDD's firmware, or interface with it at a much lower layer than even the Windows kernel normally interfaces with. – allquixotic – 2014-10-14T05:28:42.880

1So, in conclusion: 40%, especially with those numbers you cited, is really normal and nothing to worry about. If you wanted to be sure that your disk isn't doing something weird physically that's causing it to be intermittently slow at performing the same physical operations, you'd have to be intimately familiar with your specific make and model of HDD and probably replace its firmware. I guarantee you that HDtune Pro is not doing that. – allquixotic – 2014-10-14T05:30:13.273

Answers

1

Your test system is not repeating the test consistently. You need to remove all possibly variations and try again.

  • Quit all applications
  • Disable or better still uninstall anti-virus software
  • Make sure the drive under test is not the system drive, i.e. Windows is installed on another disk

When doing any kind of benchmark testing you need to eliminate as many variables as possible. You could try booting Windows into Safe Mode too.

user237698

Posted 2014-10-14T04:48:21.867

Reputation: