Difference between 'sar' and 'iostat' commands

5,611

You are running iostat without giving any interval. So, it will report the statistics since the boot time.

Whereas for sar, you mentioned 1 interval. This means in sar report, the report is for the last 1 second.

Both uses /proc/ for getting these reports, where all these values are stored as counters (increases time to time). You can read much about which filesystem that these reports uses from the man pages (scroll to the end of the man page). Also read about counters, if you don't understand my point.

And then, the reports are obtained by knowing the values at any two points of time and calculating the difference in the values for those two points of time. Hence, if interval is not specified, as there is only 1 point of time (i.e., the time you ran the command) and it considers boot time as other point of time. That's why you get the average since boot time.

Share:
5,611

Related videos on Youtube

Mandar Shinde
Author by

Mandar Shinde

Updated on September 18, 2022

Comments

  • Mandar Shinde
    Mandar Shinde over 1 year

    With sar and iowait, we can get CPU time utilization. But, when I executed both commands, I could see significant differences in their outputs.

     > iostat && sar 1 1
    Linux 2.6.32-042stab090.4 (LinuxBox)     08/14/2014      _x86_64_        (16 CPU)
    
    avg-cpu:  %user   %nice %system %iowait  %steal   %idle
               0.46    0.00    0.52    0.07    0.00   98.95
    
    Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn
    sda              10.53       760.66        44.67 3464410204  203460004
    sdb               2.49       368.15       779.18 1676748162 3548769968
    sdc               4.09       192.81        10.71  878170395   48792907
    
    Linux 2.6.32-042stab090.4 (LinuxBox)     08/14/2014      _x86_64_        (16 CPU)
    
    10:35:21 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
    10:35:22 AM     all      0.00      0.00      0.06      0.00      0.00     99.94
    Average:        all      0.00      0.00      0.06      0.00      0.00     99.94
    

    It is very difficult for me to decide which output is more reliable. Which command should be considered as more accurate one?

    • jordanm
      jordanm almost 10 years
      I wouldn't expect accurate IO statistics from inside of a VZ container, regardless of the tool. Anyways, the difference there is sar shows a daily average and iostat without options is since boot.
    • Mandar Shinde
      Mandar Shinde almost 10 years
      In order to monitor live data, sar command would be more useful, is it the case?