linux_wiki:sar

This is an old revision of the document!


sar (system activity report)

sar is used for displaying collected activity counters of various OS stats, including CPU, memory, swap, and disk I/O.

sar is a command provided by the sysstat package.

1) Install sysstat (Red Hat or Debian)

yum install sysstat
or
apt-get install sysstat

2) Enable collection

vim /etc/default/sysstat

Change (Enabled=“false”) to (Enabled=“true”).

3) Modify Collection Interval (optional)

vim /etc/cron.d/sysstat

Look for a line like this to edit: # Activity reports every 10 minutes everyday 5-55/10 * * * * root command -v debian-sa1 > /dev/null && debian-sa1 1 1

4) Start the service

service sysstat start

5) Enable on boot (Red Hat or Debian)

chkconfig sysstat on
or
update-rc.d sysstat defaults

After sysstat has collected data for a while, you can start to view the information with sar.

Log location

Sar logs to either:

  • /var/log/sysstat/
  • /var/log/sa/

With each log file named after the day of the month it is.

Best by visual example:

ls -l /var/log/sysstat/
-rw-r--r-- 1 root root 116880 Dec  1 22:35 sa01
-rw-r--r-- 1 root root 105984 Dec  2 22:05 sa02
-rw-r--r-- 1 root root  66032 Dec  3 20:15 sa03

These files can be read by sar using the “-f <path-to-file” flag.


CPU Utilization

sar -u  (displays for current day until that point)
sar -u 1 5  (display real time CPU every 1 second, 5 times)
sar -u -f /var/log/sysstat/sa01  (display CPU usage on the 1st day of the month)
Linux 3.13.0-39-generic (dt-bill) 	12/03/2014 	_x86_64_	(4 CPU)
 
05:22:31 PM       LINUX RESTART
05:25:01 PM     CPU     %user     %nice   %system   %iowait    %steal     %idle
05:35:01 PM     all      3.70      0.09      0.50      0.56      0.00     95.15
05:45:01 PM     all      4.26      0.25      0.62      0.23      0.00     94.64

Columns:

  • CPU ⇒ Which CPU the rest of the columns are about. (Default is all)
  • %user ⇒ % spent running user level (applications) processes.
  • %nice ⇒ % spent running user level (applications) with nice priority.
  • %system ⇒ % spent running at system level. (kernel)
  • %iowait ⇒ % that CPU(s) were idle while the system was waiting on disk I/O request(s).
  • %steal ⇒ % spent involutarily waiting by virtual CPU(s) while the hypervisor was servicing another virtual processor.
  • %idle ⇒ % that CPU(s) were idle and system was not waiting on disk I/O request(s).

Memory (RAM) Stats

sar -r  (display todays memory stats)
sar -r 2 10  (display real time memory stats every 2 seconds, 10 times)
sar -r
Linux 3.13.0-39-generic (dt-bill) 	12/03/2014 	_x86_64_	(4 CPU)
 
05:25:01 PM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
05:35:01 PM   6514076   1661656     20.32     94056    657736   2300940     13.89   1008760    455492       580

Columns (probably the only ones you care about):

  • kbmemfree ⇒ memory free in kilobytes
  • kbmemused ⇒ memory used in kilobytes
  • %memused ⇒ % memory used

Swap Stats

sar -S  (todays swap usage)
sar -S
Linux 3.13.0-39-generic (dt-bill) 	12/03/2014 	_x86_64_	(4 CPU)
 
05:25:01 PM kbswpfree kbswpused  %swpused  kbswpcad   %swpcad
05:35:01 PM   8388604         0      0.00         0      0.00

Columns:

  • kbswpfree ⇒ Free swap space in kilobytes
  • kbswpused ⇒ Used swap space in kilobytes
  • %swpused ⇒ % used swap space
  • kbswpcad ⇒ Cached swap in kilobytes. This is memory that once was swapped out, is swapped back in but still also is in the swap area (if memory is needed it doesn't need to be swapped out again because it is already in the swap area. This saves disk I/O)
    • Explanation: If the kernel needs more space in memory(RAM), it moves aging processes to slower disk swap space.(swap out of memory) If those processes are needed again, they are moved back to RAM (swapped in). The copies are NOT deleted from disk swap space; there is no need to waste disk I/O on doing this unless something else needs the disk swap space.

Disk I/O

sar -b  (todays disk I/O and transfer rates)
sar -b
Linux 3.13.0-39-generic (dt-bill) 	12/03/2014 	_x86_64_	(4 CPU)
 
05:25:01 PM       tps      rtps      wtps   bread/s   bwrtn/s
05:35:01 PM     26.47     23.27      3.20    765.51    464.86

Columns:

  • tps ⇒ transfers per second (both disk reads and writes)
  • rtps ⇒ read requests per second
  • wtps ⇒ write requests per second
  • bread/s ⇒ blocks read per second (block = sector = 512 bytes)
  • bwrtn/s ⇒ blocks written per second (block = sector = 512 bytes)

Network Stats

sar -n TYPE (todays network statistics)

TYPE can be:

  • DEV ⇒ devices vital stats (eth0, eth1, etc)
  • EDEV ⇒ device failure stats
  • NFS ⇒ NFS client activity
  • NFSD ⇒ NFS server activity
  • IP ⇒ IPv4 network traffic
  • TCP ⇒ TCPv4 network traffic
  • UDP ⇒ UDPv4 network traffic
  • ALL ⇒ All of the above (and more). Warning: this will be very long.

Example (device stats for just eth1 from 5pm to 6pm today)

sar -n DEV -s 17:00:00 -e 18:00:00 | grep eth1
05:25:01 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s   %ifutil
05:35:01 PM      eth1     13.77     11.45     12.31      1.37      0.00      0.00      0.05      0.01
05:45:01 PM      eth1     23.35     17.53     27.06      2.09      0.00      0.00      0.04      0.02
05:55:01 PM      eth1     50.00     35.92     63.80      3.92      0.00      0.00      0.04      0.05
Average:         eth1     29.04     21.64     34.39      2.46      0.00      0.00      0.04      0.03

Start and End

Report only specfic time periods

CPU stats for today, from 6pm to 6:30pm

sar -u -s 18:00:00 -e 18:30:00  

Memory stats 1pm to 3pm, from the 1st day of the month

sar -r -s 13:00:00 -e 15:00:00 -f /var/log/sysstat/sa01
  • linux_wiki/sar.1417662523.txt.gz
  • Last modified: 2019/05/25 23:50
  • (external edit)