Hard drive performance characteristics have already been introduced
in Section 4.2.4 Hard Drives; this section discusses the matter
in more depth. This is important for system administrators to
understand, because without at least basic knowledge of how hard drives
operate, it is possible to unwittingly making changes to your system
configuration that could negatively impact its performance.
The time it takes for a hard drive to respond to and complete an I/O
request is dependent on two things:
The hard drive's mechanical and electrical limitations
The I/O load imposed by the system
The following sections explore these aspects of hard drive
performance in more depth.
Because hard drives are electro-mechanical devices, they are
subject to various limitations on their speed and performance. Every
I/O request requires the various components of the drive to work
together to satisfy the request. Because each of these components
have different performance characteristics, the overall performance of
the hard drive is determined by the sum of the performance of the
individual components.
However, the electronic components are at least an order of
magnitude faster than the mechanical components. Therefore, it is the
mechanical components that have the greatest impact on overall hard
drive performance.
Tip
The most effective way to improve hard drive performance is to
reduce the drive's mechanical activity as much as possible.
The average access time of a typical hard drive is roughly 8.5
milliseconds. The following sections break this figure down in more
detail, showing how each component impacts the hard drive's overall
performance.
All hard drives produced today have sophisticated embedded
computer systems controlling their operation. These computer
systems perform the following tasks:
Interacting with the outside world via hard drive's
interface
Controlling the operation of the rest of the hard drive's
components, recovering from any error conditions that might
arise
Processing the raw data read from and written to the actual
storage media
Even though the microprocessors used in hard drives are
relatively powerful, the tasks assigned to them take time to
perform. On average, this time is in the range of .003
milliseconds.
The hard drive's read/write heads only work when the disk
platters over which they "fly" are spinning. Because it is the
movement of the media under the heads that allows the data to be
read or written, the time that it takes for media containing the
desired sector to pass completely underneath the head is the sole
determinant of the head's contribution to total access time. This
averages .0086 milliseconds for a 10,000 RPM drive with 700 sectors
per track.
Because a hard drive's disk platters are continuously spinning,
when the I/O request arrives it is highly unlikely that the platter
will be at exactly the right point in its rotation necessary to
access the desired sector. Therefore, even if the rest of the drive
is ready to access that sector, it is necessary for everything to
wait while the platter rotates, bringing the desired sector into
position under the read/write head.
This is the reason why higher-performance hard drives typically
rotate their disk platters at higher speeds. Today, speeds of
15,000 RPM are reserved for the highest-performing drives, while
5,400 RPM is considered adequate only for entry-level drives. This
averages approximately 3 milliseconds for a 10,000 RPM drive.
If there is one component in hard drives that can be considered
its Achilles' Heel, it is the access arm. The reason for this is
that the access arm must move very quickly and accurately over
relatively long distances. In addition, the access arm movement is
not continuous — it must rapidly accelerate as it approaches
the desired cylinder and then just as rapidly decelerate to avoid
overshooting. Therefore, the access arm must be strong (to survive
the violent forces caused by the need for quick movement) but also
light (so that there is less mass to accelerate/decelerate).
Achieving these conflicting goals is difficult, a fact that is
shown by how relatively much time the access arm movement takes when
compared to the time taken by the other components. Therefore, the
movement of the access arm is the primary determinant of a hard
drive's overall performance, averaging 5.5 milliseconds.
The other thing that controls hard drive performance is the I/O
load to which a hard drive is subjected. Some of the specific aspects
of the I/O load are:
The amount of reads versus writes
The number of current readers/writers
The locality of reads/writes
These are discussed in more detail in the following
sections.
For the average hard drive using magnetic media for data
storage, the number of read I/O operations versus the number of
write I/O operations is not of much concern, as reading and writing
data take the same amount of time[1]. However, other mass storage
technologies take different amounts of time to process reads and
writes[2].
The impact of this is that devices that take longer to process
write I/O operations (for example) are able to handle fewer write
I/Os than read I/Os. Looked at another way, a write I/O consumes
more of the device's ability to process I/O requests than does a
read I/O.
A hard drive that processes I/O requests from multiple sources
experiences a different load than a hard drive that services I/O
requests from only one source. The main reason for this is due to
the fact that multiple I/O requesters have the potential to bring
higher I/O loads to bear on a hard drive than a single I/O
requester.
This is because the I/O requester must perform some amount of
processing before an I/O can take place. After all, the requester
must determine the nature of the I/O request before it can be
performed. Because the processing necessary to make this
determination takes time, there is an upper limit on the I/O load
that any one requester can generate — only a faster CPU can
raise it. This limitation becomes more pronounced if the requester
requires human input before performing an I/O.
However, with multiple requesters, higher I/O loads may be
sustained. As long as sufficient CPU power is available to support
the processing necessary to generate the I/O requests, adding more
I/O requesters increases the resulting I/O load.
However, there is another aspect to this that also has a bearing
on the resulting I/O load. This is discussed in the following
section.
Although not strictly constrained to a multi-requester
environment, this aspect of hard drive performance does tend to show
itself more in such an environment. The issue is whether the I/O
requests being made of a hard drive are for data that is physically
close to other data that is also being requested.
The reason why this is important becomes apparent if the
electromechanical nature of the hard drive is kept in mind. The
slowest component of any hard drive is the access arm. Therefore,
if the data being accessed by the incoming I/O requests requires no
movement of the access arm, the hard drive is able to service many
more I/O requests than if the data being accessed was spread over
the entire drive, requiring extensive access arm movement.
This can be illustrated by looking at hard drive performance
specifications. These specifications often include
adjacent cylinder seek times (where the
access arm is moved a small amount — only to the next
cylinder), and full-stroke seek times (where
the access arm moves from the very first cylinder to the very last
one). For example, here are the seek times for a high-performance
hard drive:
Adjacent Cylinder
Full-Stroke
0.6
8.2
Table 5-4. Adjacent Cylinder and Full-Stroke Seek Times (in
Milliseconds)
Actually, this is
not entirely true. All hard drives include some amount of on-board
cache memory that is used to improve read performance. However, any
I/O request to read data must eventually be satisfied by physically
reading the data from the storage medium. This means that, while
cache may alleviate read I/O performance problems, it can never
totally eliminate the time required to physically read the data from
the storage medium.