Your system's hardware has the greatest influence
on its performance. It is the ultimate limiting
factor on how fast a process will run before it has to
start sharing what is available with the operating system and
other user processes.
Performance tuning
can require you to add hardware or
upgrade existing hardware if a system's
physical subsystems are unbalanced in power, or
insufficiently powerful to satisfy the demands being put on them.
There may come a time when, despite your best efforts, you cannot
please enough people enough of the time with the hardware
resources at your disposal.
If so, you will have to go and buy some more hardware.
This is one reason why monitoring and recording your
system's performance is important if you are not
the person spending the money.
With the information that you have gathered, you
can make a strong case for upgrading your system.
It is important to balance the power of your computer's
subsystems with each other; the power of the CPU(s) is
not enough in itself. If the other subsystems
are slow relative to the available processing power, they will
act to constrain it. If they are more powerful, you have
possibly overspent, although you should be able to upgrade processing
power without much extra expenditure.
There are many hardware factors that can limit the overall system
performance:
The speed and width of the system's address and data buses.
The model, clock speed, and the size of the internal level-one (L1)
memory cache of the system's CPU or CPUs.
The size of the level-two (L2) cache memory which is
external to the CPU. This should be capable
of working with all of
physical memory.
The amount of memory, the width of its data path, and its access time.
The time that the CPU has to wait for memory to be accessed
limits its performance.
The speed and width of a SCSI bus controlled by a host
adapter.
The width of the data path on peripheral controller cards (32, 16, or 8-bit).
Whether controllers have built-in cache.
This is particularly important for disk and network controllers.
Access time for hard disks.
Whether intelligent or dumb serial cards are used; intelligent
cards offload much of the work that would otherwise be performed
by the CPU.
On multiprocessor machines, the following considerations also
become important:
Write-back L2 cache (for instructions and data) with cache coherency
on each CPU to reduce the number of accesses to main
memory. This has the benefit of improving CPU
performance as well as improving general system performance by
reducing contention for the system bus.
Support for fully
distributed interrupts
to allow any CPU to service
interrupts
from I/O devices such as network and disk controllers.
The memory and I/O subsystems must be as fast as
possible to keep up with the demands of the enhanced
CPU performance. Use of intelligent peripheral
controllers is particularly desirable.