4 ms·
> full-platter seek time: ~8ms; half-platter seek time (avg): ~4ms Average distance between two points (first is current location, second is target location) w
by Const-me 1y ago
> full-platter seek time: ~8ms; half-platter seek time (avg): ~4ms
Average distance between two points (first is current location, second is target location) when both are uniformly distributed in [ 0 .. +1 ] interval is not 0.5, it’s 1/3. If the full platter seek time is 8ms, average seek time should be 2.666ms.
- nick49488171 1y agoThere's acceleration of the read head to move it between the tracks. So it may well be 4ms because shorter distances are penalized by a lower peak speed of the read head as well as constant factors (settling at the end of motion)
- pjdesno 1y agoIT’S NOT 4 MS. That’s a bogus number from an ancient slide deck for a class in 2001 or so, that’s misled generations of folks googling for the answer. Note also that the outer tracks are longer (google ZCAV) and hold more data, so seeks across uniformly distributed block numbers do not generate uniformly distributed track numbers.
- pjdesno 1y agoFull seek on a modern drive is a lot closer to 25ms than 8ms. It's pretty easy to test yourself if you have a hard drive in your machine and root access - fire up fio with --readonly and feed it a handmade trace that alternates reading blocks at the beginning and end of disk. (--readonly does a hard disable of any code that could write to the drive) Here's a good paper that explains why the 1/3 number isn't quite right on any drives manufactured in the last quarter century or so - https://www.msstconference.org/MSST-history/2024/Papers/msst24-1.1.pdf https://www.msstconference.org/MSST-history/2024/Papers/msst... I'd be happy to answer any other questions about disk drive mechanics and performance.
- kvemkon 1y ago> Full seek on a modern drive is a lot closer to 25ms than 8ms Is "full seek" a synonymous for worst case time to reach a position occurring less than 1% of working time? From the article: max seek time is 15.2 ms + additionally 0 to 8.3 ms of rotational latency. Reordering of sector accesses by NCQ should reduce worst case scenario occurrences.
- pjdesno 1y agoI didn’t check the article. When I was reviewing it for publication I ran a couple of tests and found more like 18 on the devices I tested, but I’m sure there are some that do 15. 25 is probably on the slow end. (although I’ve never tested a HAMR drive - their head assemblies are probably heavier and more delicate) Old SCSI 10K drives could hand a huge queue and reach 500 random read IOPS, sounding like a buzzsaw while they did it. Modern capacity drives treat their internals much more gently, and don’t get as much queuing gain. Note also that for larger objects the chunk size is probably 1+ rotations to amortize the seek overhead.
- pjdesno 1y agoOh, and by “full seek” I mean the time it takes to read the max block number (inner diameter) right after reading the min block number (OD) subtracting rotational delay. You can do this test yourself with fio —readonly and root access to a hard drive block device, even if it’s mounted. (good luck reading any files while the test is running, but no damage done) Pick a variety of very high and low blocks, and the min delay will be when rotational delay is close to zero.
- smallnamespace 1y agoThe platter is a circle so using the uniform distribution [0, 1] is incorrect, you should use the unit circular distribution of [0, 2pi] and also since the platter also spins in a single direction the distance is only computed going one way around (if target is right before current, it's one full spin). But you can simplify this problem down and ask: with no loss of generality, if your starting point is always 0 degrees, how many degrees clockwise is a random point on average, if the target is uniformly distributed? Since 0-180 has the same arc length as 180-360 then the average distance is 180 degrees. So average half-platter seek is half of the full-platter seek.
- Const-me 1y agoWhat you wrote only applies to rotational latency, not seek latency. The seek latency is the time it takes for the head to reach the target. Heads only rotate within the small range like [ 0 .. 25° ], they are designed for rapid movements in either direction.