Re: Performance variation in traditional HDDs?
Damien Le Moal <[email protected]>
| Newsgroups | org.kernel.vger.fio |
|---|---|
| Organization | Western Digital Research |
| Message-ID | <[email protected]> |
On 4/10/25 3:41 AM, Nick Neumann wrote: > We recently benchmarked some identical HDDs (same part number, > purchase date, and firmware) with fio and were surprised by speed > differences between them. Intrigued, we bought a few more sets of > identical drives and benchmarked them. It makes sense that there would > be some variation - after all, these are rotating platters and > physical rotation speed may vary a bit. Very unlikely. You are talking about some very precise control in the drive here. > All sets of identical drives showed some variation, with some showing > significantly more than others. Note that when the exact same drive is > rebenched, it generally shows the same results. So different instances > of the same drive really do perform differently. > > For example, we benched 6 of the same 2TB 7200 RPM drive and did a > full drive write with fio. The slowest drive averaged 158MB/s over the > run. The fastest averaged 174MB/s. And the average of all drives was > 169MB/s. > > I was wondering if anyone had pointers/thoughts on what kind of > variation should be expected in performance with HDDs, or > articles/research about this behavior? Did you mount all drives exactly the same way ? Do the HDD mounts you use have proper vibration dampening ? Generally, HDD performance variations come from different vibration characteristics, due to external factors, including noise. E.g. a drive in an enclosure that is close to a fan may not perform as well as another drive that is mounted further away from the fan. Given the differences you are showing, I would say that it is likely that you have HDD mounting problems. Of course, testing with the drive resting on a table with no mounting is a non-starter... Another thing: what fio command line did you use ? If you did not use direct IOs at high queue depth, you can have problems getting the maximum speed. Generally, something like this is good: fio --name=test --filename=/dev/sdX --ioengine=libaio --iodepth=32 \ --rw=read --direct=1 --bs=1M -- Damien Le Moal Western Digital Research