The seek time of a hard disk measures the amount of time required for the
read/write heads to move between tracks over the surfaces of the platters. Seek time is
one of the most commonly discussed metrics for hard disks, and it is one of the
most important positioning performance specifications. However, using this number to
compare drives can be somewhat fraught with danger. Alright, that's a bit melodramatic;
nobody's going to get hurt or anything.
Still, to use seek time properly, we must
figure out exactly what it means.
Switching between tracks requires the head actuator
to move the head arms physically, which being a mechanical process, takes a specific
amount of time. The amount of time required to switch between two tracks depends on the
distance between the tracks. However, there is a certain amount of "overhead"
involved in track switching, so the relationship is not linear. It does not take double
the time to switch from track 1 to track 3 that it does to switch from track 1 to track 2,
much as a trip to the drug store 2 miles away does not take double the time of a trip to
the grocery store 1 mile away, when you include the overhead of getting into the car,
starting it, etc.
Seek time is normally expressed in milliseconds (commonly abbreviated "msec"
or "ms"), with average seek times for most modern drives today in a rather tight
range of 8 to 10 ms. Of course, in the modern PC, a millisecond is an enormous
amount of time: your system memory has speed measured in nanoseconds, for example (one
million times smaller). A 1 GHz processor can (theoretically) execute over one million
instructions in a millisecond! Obviously, even small reductions in seek times can result
in improvements in overall system performance, because the rest of the system is often
sitting and waiting for the hard disk during this time. It is for this reason that seek
time is usually considered one of the most important hard disk performance specifications.
Some consider it the most important.
At one point many years ago seek times were difficult to use because manufacturers
wouldn't agree on a standardized way of reporting them. Today, this has largely been
corrected. While seek time is usually given as a single number, in fact there are three
different seek time specifications you should examine for a drive, as they represent
the drive's performance when doing different types of seeks:
- Average: As discussed, this is meant to represent an average seek time from one
random track (cylinder) to any other. This is the most common seek time metric, and is
usually 8 to 10 ms, though older drives had much higher numbers, and top-of-the-line SCSI
drives are now down to as low as 4 ms!
- Track-to-Track: This is the amount of time that is required to seek between
adjacent tracks. This is similar in concept (but not exactly the same as) the track switch time and is usually around 1 ms.
(Incidentally, getting this figure without at least two significant digits is pretty
meaningless; don't accept "1 ms" for an answer, get the number after the decimal
point! Otherwise every drive will probably round off to "1 ms".)
- Full Stroke: This number is the amount of time to seek the entire width of the
disk, from the innermost track to the outermost. This is of course the largest number,
typically being in the 15 to 20 ms range. In some ways, combining this number with the
average seek time represents the way the drive will behave when it is close to being full.
While I believe that seek time is a very important specification, I have become
somewhat cynical in the last few years regarding the amount of attention paid to it. The
reason is that there is so little difference between the seek time specs of most
comparable drives in any given class or category. For example, almost all IDE/ATA 7200 RPM
drives shipping in 2000 have an average seek time specification of 8.0, 8.5 or 9.0
milliseconds. This doesn't leave a lot to work with. However, at the same time, we must
realize that of the four components that comprise the drive's access time, if you are comparing two drives of the same class and spindle
speed, only seek time will differ much between them. So this small differential may be the
only thing to distinguish drives; and small differences are what you are likely to see.
(Larger discrepancies though, directly translate into often very noticeable
differences in performance. A drive with a 5 ms seek time will generally blow the doors
off one with a seek time of 8.0 to 9.0 ms in random positioning tasks, which is why these
fast drives are preferred for servers and other multi-user environments.)
To really put seek time in proper context, it should be remembered that it is the
largest component of access time, which is the composite metric that best represents
positioning performance. However, it is only one component, and there is at one that is of
at least equal importance (see the discussion of access time
for more on seek time's role in overall positioning performance). Also, bear in mind that
seek times are averages that make certain assumptions of how the disk will be
used. For example, file system factors will always have an
impact on seek performance in the real world.
A couple of additional caveats on seek times. First, unless you see two numbers, one
for read performance and one for write, seek times always refer to reads; see here for more details. Ask for the write numbers if
you are interested, or you can approximate by adding 1 ms to the average read
numbers. Second, watch out for "less than X ms" specifications. Rather bogus,
and fortunately not seen as often as in the past, I interpret "less than X ms"
as "X ms" and you generally should do so as well--if the true average were under
"X-1", they'd say "less than X-1 ms" instead of "less than X
ms".
Seek time is almost entirely a function of the design
and characteristics of the hard disk's actuator assembly. It is affected slightly by
the read/write head design since the size of the heads
affects movement speed.
Note: Some
manufacturers include settle time as part of
their seek time specification. Since settle time is relatively small this doesn't really
change the seek time numbers much.
Next: Settle Time