so i've noticed some strange behaviour in the drive i ran format unit on (and ran the clear smart vsc). when running "hdparm -t", which does a 3 second read from the start of the disk, it is consistently scoring at least 20MB/s lower than the other 5 drives. also, when running "dd" for 3s to simulate what "hdparm -t" does, there is also a marked reduction in performance. over the course of a longer sequential read, the difference seems to disappear. this was also confirmed on a long sequence of random reads using the "fio" benchmark utility. the iops are the same between the "good" and "bad" drive which are attached to the same pci-e controller.
i'm wondering if i've inadvertently initialized the g-list on the drive, causing it to seek to a special area of the disk before initiating the benchmarks e.g. hdparm/dd? it'd explain why the difference is only in the first seconds of the benchmarks, but after longer sequential reads the instanenous MB/s are the same.
here is what i'm seeing. sdg is the "bad" drive, sdg is the "good" drive on the same controller. the 4 other drives on the internal sata controller seem to do slightly better in max throughput but i'll chalk that up to differences between the intel/asmedia controllers. notice on sdf, the speed is 201MB/s during the first 3s - the first 3s on sdg are only 150MB/s.
would somehow uninitializing the g-list, or something else, possibly restore the performance?
Code:
root@gauss:~# sync; echo 3 > /proc/sys/vm/drop_caches
root@gauss:~# hdparm -t /dev/sdf; hdparm -t /dev/sdg
/dev/sdf:
Timing buffered disk reads: 568 MB in 3.01 seconds = 188.99 MB/sec
/dev/sdg:
Timing buffered disk reads: 508 MB in 3.00 seconds = 169.32 MB/sec
root@gauss:~# sync; echo 3 > /proc/sys/vm/drop_caches
root@gauss:~# timeout -s SIGUSR1 3 dd if=/dev/sdf of=/dev/null bs=1M count=2048
576+0 records in
575+0 records out
602931200 bytes (603 MB, 575 MiB) copied, 3.00073 s, 201 MB/s
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 10.6981 s, 201 MB/s
root@gauss:~# sync; echo 3 > /proc/sys/vm/drop_caches
root@gauss:~# timeout -s SIGUSR1 3 dd if=/dev/sdg of=/dev/null bs=1M count=2048
430+0 records in
429+0 records out
449839104 bytes (450 MB, 429 MiB) copied, 2.99329 s, 150 MB/s
2048+0 records in
2048+0 records out
2147483648 bytes (2.1 GB, 2.0 GiB) copied, 12.1081 s, 177 MB/s