Sar (sysstat)

From Christoph's Personal Wiki
Revision as of 01:11, 10 November 2013 by Christoph (Talk | contribs)

Jump to: navigation, search

In computing, `sar` (System Activity Report) is a Solaris-derived system monitor command used to report on various system loads, including CPU activity, memory/paging, device load, network, etc. Linux distributions provide `sar` through the sysstat package.

These utilities are especially useful in Cloud Computing.

Utilities

The sysstat package contains the following system performance tools:

sar
collects and reports system activity information
iostat
reports CPU utilization and disk I/O statistics
mpstat
reports global and per-processor statistics
pidstat
reports statistics for Linux tasks (processes)
sadf
displays data collected by sar in various formats
nfsiostat
reports I/O statistics for network filesystems
cifsiostat
reports I/O statistics for CIFS filesystems

The statistics reported by `sar` deal with I/O transfer rates, paging activity, process-related activities, interrupts, network activity, memory and swap space utilization, CPU utilization, kernel activities, and TTY statistics, among others. Both UP and SMP machines are fully supported.

Example usage

  • CPU usage for all CPU cores on your machine

This gives the cumulative real-time CPU usage of all CPUs on your machine. "1 3" reports for every 1 seconds a total of 3 times. The most useful column/field in this report is "%idle" for the CPU load:

$ sar -u 1 3
Linux 3.8.0-30 (foobar)        11/09/13        _x86_64_        (4 CPU)

17:12:06        CPU     %user     %nice   %system   %iowait    %steal     %idle
17:12:07        all      7.93      0.00      4.35      0.00      0.26     87.47
17:12:08        all     13.04      0.00      4.35      0.00      0.51     82.10
17:12:09        all     11.70      0.00      4.83      0.00      0.00     83.46
Average:        all     10.89      0.00      4.51      0.00      0.26     84.34
  • CPU usage for all CPU core on your machine with extended output:
$ sar -u ALL 1 3
Linux 3.8.0-30 (foobar)        11/09/13        _x86_64_        (4 CPU)

17:16:04        CPU      %usr     %nice      %sys   %iowait    %steal      %irq     %soft    %guest     %idle
17:16:05        all      7.87      0.00      3.30      0.00      0.25      0.00      0.00      0.00     88.58
17:16:06        all      7.75      0.00      3.88      0.00      0.26      0.00      0.00      0.00     88.11
17:16:07        all      8.46      0.00      4.87      0.00      0.26      0.00      0.00      0.00     86.41
Average:        all      8.03      0.00      4.01      0.00      0.26      0.00      0.00      0.00     87.70
  • CPU usage for second day of the month (Note: On some distros, the location of the `sar` logs is stored under /var/log/sa/):
$ sar -u -f /var/log/sysstat/sa02
  • CPU usage of an individual CPU or core

If you have 4 cores on your machine and would like to see what the individual cores are doing, execute the following command (note: the "-P ALL" displays statistics for all the individual cores and, in the following example, the "CPU" column has fields 0, 1, 2, and 3 and they indicate the corresponding CPU core numbers):

$ sar -P ALL 1 1
Linux 3.8.0-30 (foobar)        11/09/13        _x86_64_        (4 CPU)

17:29:05        CPU     %user     %nice   %system   %iowait    %steal     %idle
17:29:06        all      7.65      0.00      4.59      0.00      0.26     87.50
17:29:06          0     10.42      0.00      3.12      0.00      1.04     85.42
17:29:06          1     13.13      0.00     11.11      0.00      0.00     75.76
17:29:06          2      4.12      0.00      3.09      0.00      0.00     92.78
17:29:06          3      2.00      0.00      2.00      0.00      0.00     96.00

Average:        CPU     %user     %nice   %system   %iowait    %steal     %idle
Average:        all      7.65      0.00      4.59      0.00      0.26     87.50
Average:          0     10.42      0.00      3.12      0.00      1.04     85.42
Average:          1     13.13      0.00     11.11      0.00      0.00     75.76
Average:          2      4.12      0.00      3.09      0.00      0.00     92.78
Average:          3      2.00      0.00      2.00      0.00      0.00     96.00

Or, if you only want to display the statistics for a single core, try the following (e.g., for only the second core. Note that core numbers start from 0):

$ sar -P 1 1 1
Linux 3.8.0-30 (foobar)        11/09/13        _x86_64_        (4 CPU)

19:15:36        CPU     %user     %nice   %system   %iowait    %steal     %idle
19:15:37          1      0.00      0.00      3.06      0.00      1.02     95.92
Average:          1      0.00      0.00      3.06      0.00      1.02     95.92

Variations of the previous commands include:

$ sar -P ALL  # Displays CPU usage broken down by all cores for the current day.
$ sar -P ALL 1 3  # Displays real time CPU usage for ALL cores every 1 second for 3 times (broken down by all cores).
$ sar -P 1  # Displays CPU usage for core number 1 for the current day.
$ sar -P 1 1 3 # Displays real time CPU usage for core number 1, every 1 second for 3 times.
$ sar -P ALL -f /var/log/sa/sa10  # Displays CPU usage broken down by all cores for the 10day day of the month from sa10 file.

External links