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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.