Maybe journaling, buffering (block and total MB), on-board cache (block and total MB) is defined differently for each of the drives you are comparing.
Maybe try running the following script with a target file on two drives that you are comparing, to see if you can spot anything that can be tuned. Tweak the block size for the device’s own block size.
Script:
#!/bin/sh
testFile="/DB001_F7/io_WriteTest.dat"
fio --name=WriteTest \
--ioengine=sync \
--rw=write \
--bs=4k \
--numjobs=1 \
--size=1G \
--time_based \
--runtime=20s \
--filename="${testFile}"
echo ""
ls -l "${testFile}"
The report looks like this:
WriteTest: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=sync, iodepth=1
fio-3.28
Starting 1 process
WriteTest: Laying out IO file (1 file / 1024MiB)
Jobs: 1 (f=1): [W(1)][100.0%][w=7192KiB/s][w=1798 IOPS][eta 00m:00s]
WriteTest: (groupid=0, jobs=1): err= 0: pid=11687: Sun Oct 19 16:07:34 2025
write: IOPS=7103, BW=27.7MiB/s (29.1MB/s)(555MiB/20007msec); 0 zone resets
clat (usec): min=15, max=40286, avg=138.99, stdev=1250.21
lat (usec): min=15, max=40286, avg=139.20, stdev=1250.21
clat percentiles (usec):
| 1.00th=[ 16], 5.00th=[ 16], 10.00th=[ 16], 20.00th=[ 16],
| 30.00th=[ 16], 40.00th=[ 17], 50.00th=[ 17], 60.00th=[ 17],
| 70.00th=[ 17], 80.00th=[ 18], 90.00th=[ 20], 95.00th=[ 21],
| 99.00th=[ 6390], 99.50th=[ 9241], 99.90th=[17171], 99.95th=[22152],
| 99.99th=[33162]
bw ( KiB/s): min= 4432, max=212640, per=100.00%, avg=28883.08, stdev=38807.26, samples=39
iops : min= 1108, max=53160, avg=7220.77, stdev=9701.82, samples=39
lat (usec) : 20=93.15%, 50=5.49%, 100=0.12%, 250=0.05%, 500=0.01%
lat (msec) : 10=0.71%, 20=0.40%, 50=0.07%
cpu : usr=1.87%, sys=11.87%, ctx=1679, majf=0, minf=13
IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
issued rwts: total=0,142118,0,0 short=0,0,0,0 dropped=0,0,0,0
latency : target=0, window=0, percentile=100.00%, depth=1
Run status group 0 (all jobs):
WRITE: bw=27.7MiB/s (29.1MB/s), 27.7MiB/s-27.7MiB/s (29.1MB/s-29.1MB/s), io=555MiB (582MB), run=20007-20007msec
Disk stats (read/write):
sda: ios=11/1386, merge=1/130303, ticks=421/377565, in_queue=378837, util=59.10%
-rw-r--r-- 1 root root 1073741824 Oct 19 16:07 /DB001_F7/io_WriteTest.dat
You might also want to check what is reported for onboard characteristics for the drives that you are comparing. You can do that with the following command for each drive:
hdparm -I /dev/sd?
The report from that command looks like this:
/dev/sda:
ATA device, with non-removable media
Model Number: WDC WD20EZRX-00DC0B0
Serial Number: WD-WCC300611350
Firmware Revision: 80.00A80
Transport: Serial, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6, SATA Rev 3.0
Standards:
Supported: 9 8 7 6 5
Likely used: 9
Configuration:
Logical max current
cylinders 16383 16383
heads 16 16
sectors/track 63 63
--
CHS current addressable sectors: 16514064
LBA user addressable sectors: 268435455
LBA48 user addressable sectors: 3907029168
Logical Sector size: 512 bytes
Physical Sector size: 4096 bytes
device size with M = 1024*1024: 1907729 MBytes
device size with M = 1000*1000: 2000398 MBytes (2000 GB)
cache/buffer size = unknown
Capabilities:
LBA, IORDY(can be disabled)
Queue depth: 32
Standby timer values: spec'd by Standard, with device specific minimum
R/W multiple sector transfer: Max = 16 Current = 16
DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6
Cycle time: min=120ns recommended=120ns
PIO: pio0 pio1 pio2 pio3 pio4
Cycle time: no flow control=120ns IORDY flow control=120ns
Commands/features:
Enabled Supported:
* SMART feature set
Security Mode feature set
* Power Management feature set
* Write cache
* Look-ahead
* Host Protected Area feature set
* WRITE_BUFFER command
* READ_BUFFER command
* NOP cmd
* DOWNLOAD_MICROCODE
Power-Up In Standby feature set
* SET_FEATURES required to spinup after power up
SET_MAX security extension
* 48-bit Address feature set
* Device Configuration Overlay feature set
* Mandatory FLUSH_CACHE
* FLUSH_CACHE_EXT
* SMART error logging
* SMART self-test
* General Purpose Logging feature set
* 64-bit World wide name
* WRITE_UNCORRECTABLE_EXT command
* {READ,WRITE}_DMA_EXT_GPL commands
* Segmented DOWNLOAD_MICROCODE
* Gen1 signaling speed (1.5Gb/s)
* Gen2 signaling speed (3.0Gb/s)
* Native Command Queueing (NCQ)
* Host-initiated interface power management
* Phy event counters
* NCQ priority information
* READ_LOG_DMA_EXT equivalent to READ_LOG_EXT
* DMA Setup Auto-Activate optimization
Device-initiated interface power management
* Software settings preservation
* SMART Command Transport (SCT) feature set
* SCT Write Same (AC2)
* SCT Features Control (AC4)
* SCT Data Tables (AC5)
unknown 206[7]
unknown 206[12] (vendor specific)
unknown 206[13] (vendor specific)
unknown 206[14] (vendor specific)
Security:
Master password revision code = 65534
supported
not enabled
not locked
frozen
not expired: security count
supported: enhanced erase
294min for SECURITY ERASE UNIT. 294min for ENHANCED SECURITY ERASE UNIT.
Logical Unit WWN Device Identifier: 50014ee25ddf981e
NAA : 5
IEEE OUI : 0014ee
Unique ID : 25ddf981e
Checksum: correct