linux poison RSS
linux poison Email

How to measure and read disk activity

Open terminal and fire following command
# cat /sys/block/sda/stat
186908    41568  6033917  2408504    91198   509600  4882200  9406764        0  1161304 11848624

Field  1 -- # of reads issued
This is the total number of reads completed successfully.

Field  2 -- # of reads merged, field 6 -- # of writes merged
Reads and writes which are adjacent to each other may be merged for efficiency.  Thus two 4K reads may become one 8K read before it is ultimately handed to the disk, and so it will be counted (and queued) as only one I/O.  This field lets you know how often this was done.

Field  3 -- # of sectors read
This is the total number of sectors read successfully.

Field  4 -- # of milliseconds spent reading
This is the total number of milliseconds spent by all reads (as measured from __make_request() to end_that_request_last()).

Field  5 -- # of writes completed
This is the total number of writes completed successfully.

Field  7 -- # of sectors written
This is the total number of sectors written successfully.

Field  8 -- # of milliseconds spent writing
This is the total number of milliseconds spent by all writes (as measured from __make_request() to end_that_request_last()).

Field  9 -- # of I/Os currently in progress
The only field that should go to zero. Incremented as requests are given to appropriate request_queue_t and decremented as they finish.

Field 10 -- # of milliseconds spent doing I/Os
This field is increases so long as field 9 is nonzero.

Field 11 -- weighted # of milliseconds spent doing I/Os
This field is incremented at each I/O start, I/O completion, I/O merge, or read of these stats by the number of I/Os in progress (field 9) times the number of milliseconds spent doing I/O since the last update of this field.  This can provide an easy measure of both I/O completion time and the backlog that may be accumulating.

Note, this is device specific.


2 comments:

Amr_not_Amr said...

Really Thanks, I'm interested to know what do those fields mean ...

Have you,also , tried playing with iostat ?

You can monitor disk activity using, for example;

iostat -xm -d 10
To get detailed statistics with block size in Megabytes every 10 seconds, that also show the channel saturation percentage that's extremely useful to know how much you disks are loaded

You might also need to specify one disk , for example;
iostat -p /dev/sda -d 10

Note: that the 1st reading is the average since the last reboot ...

Nick Wilkinson said...

Thanks to both of you. Very useful.

Post a Comment

Related Posts with Thumbnails