Display the number of I/O to disk (reads/writes) since the last boot on CentOS

Is it possible to use iostat (or some other tool) to get the number of reads/writes operation "since the last server reboot"?

I mean: I'd need to know how many reads/writes the server has done since the last boot, not in realtime.

Thanks!


Solution 1:

For the amount of data, see iostat:

[root@example ~]# iostat -m
Linux 2.6.32-431.11.2.el6.x86_64 (example.com)  08/08/2014  _x86_64_    (2 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.38    0.00    4.10    0.36    0.10   95.07

Device:            tps    MB_read/s    MB_wrtn/s    MB_read    MB_wrtn
sda               0.95         0.01         0.01      68451      77290
vda              13.95         0.26         0.33    2871276    3572093
dm-0              1.93         0.01         0.01      64657      73426
dm-1             14.39         0.26         0.33    2871274    3572093

-m will display the output in MiB (instead of blocks), and the MB_read, MB_wrtn are the numbers you are looking for.

For the total amount of I/O operations (requests), see /sys/block/$DEV/$PART/stat, e.g. /sys/block/sda/sda1/stat or /proc/diskstats, which can be interpreted as follows (this is from the kernel doc tree):

What:       /proc/diskstats
Date:       February 2008
Contact:    Jerome Marchand <[email protected]>
Description:
        The /proc/diskstats file displays the I/O statistics
        of block devices. Each line contains the following 14
        fields:
         1 - major number
         2 - minor mumber
         3 - device name
         4 - reads completed successfully
         5 - reads merged
         6 - sectors read
         7 - time spent reading (ms)
         8 - writes completed
         9 - writes merged
        10 - sectors written
        11 - time spent writing (ms)
        12 - I/Os currently in progress
        13 - time spent doing I/Os (ms)
        14 - weighted time spent doing I/Os (ms)
        For more details refer to Documentation/iostats.txt