We notice very high i/o times in top and slow performance when going against a particular table, reads or writes. Dug up this command. Does this indicate that there is an issue on these devices? Once processing against this table finishes, i/o times go from 50% to .5%. Any experienced guidance is appreciated. Samples taken during processing. The actv keeps increasing.
Maintenance Commands iostat(1M)
Device name of the disk
r/s reads per second
w/s writes per second
Kr/s kilobytes read per second
Kw/s kilobytes written per second
wait average number of transactions waiting for service (queue length)
actv average number of transactions actively being serviced
(removed from the queue but not yet completed)
svc_t average service time, in milliseconds
%w percent of time there are transactions waiting for
service (queue non-empty)
%b percent of time the disk is busy (transactions in progress)
There's a couple of things to look at with iostat. First, to get a good indication of how busy a device is, look at the %b number. If this is 100% for one device, but 0% for other devices, look at spreading your data out on multiple devices. If your swap device is 100% busy, I would look to make sure your system is not swapping.
The second thing to look at is svc_t. If you have high service times with high %b and a low number of I/O's, you might have a disk going bad.
Lastly, I look at r/s and w/s to make sure they look like they are doing the right amount of work. A 5400RPM drive does about 100 I/Os per second, a 7200RPM drive does around 140, and a 10KRPM does around 180-200. Of course, striped devices do more.
12-19-2002, 08:57 AM
and don't forget to stand in front of the disks and watch the lights flash! (I'm serious!) It's quick, easy and cheap.
12-19-2002, 09:35 AM
Regardless of your iostat statistics. Did you analyze your database layer? I mean execution plan of slow queries, database wait events and so on?