4.3.5.4. I/O resources
While I/O limitations are a major cause of stress for system
admins, the Linux system offers rather poor utilities to measure
I/O performance. The ps, vmstat and top tools give some
indication about how many programs are waiting for I/O; netstat displays network interface statistics, but
there are virtually no tools available to measure the I/O response
to system load, and the iostat command gives
a brief overview of general I/O usage. Various graphical front-ends
exist to put the output of these commands in a humanly
understandable form.
Each device has its own problems, but the bandwidth available to
network interfaces and the bandwidth available to disks are the two
primary causes of bottlenecks in I/O performance.
Network I/O problems:
-
Network overload:
The amount of data transported over the network is larger than
the network's capacity, resulting in slow execution of every
network related task for all users. They can be solved by cleaning
up the network (which mainly involves disabling protocols and
services that you don't need) or by reconfiguring the network (for
example use of subnets, replacing hubs with switches, upgrading
interfaces and equipment).
-
Network integrity problems:
Occurs when data is transferred incorrectly. Solving this kind
of problem can only be done by isolating the faulty element and
replacing it.
Disk I/O problems:
-
per-process transfer rate too low:
Read or write speed for a single process is not sufficient.
-
aggregate transfer rate too low:
The maximum total bandwidth that the system can provide to all
programs that run is not enough.
This kind of problem is more difficult to detect, and usually
takes extra hardware in order to re-divide data streams over buses,
controllers and disks, if overloaded hardware is cause of the
problem. One solution to solve this is a RAID array configuration
optimized for input and output actions. This way, you get to keep
the same hardware. An upgrade to faster buses, controlers and disks
is usually the other option.
If overload is not the cause, maybe your hardware is gradually
failing, or not well connected to the system. Check contacts,
connectors and plugs to start with.