|
|
|
|
NOTE: CentOS Enterprise Linux is built from the Red Hat Enterprise Linux source code. Other than logo and name changes CentOS Enterprise Linux is compatible with the equivalent Red Hat version. This document applies equally to both Red Hat and CentOS Enterprise Linux.
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 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. However,
other mass storage technologies take different amounts of time to
process reads and writes.
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)
|
|
|