SAR(ADM) UNIX System V
Name
sar, sa1, sa2, sadc - system activity report package
Syntax
sar [-ubdycwaqvmprDSAC] [-o file] t [ n ]
sar [-ubdycwaqvmprDSAC] [-s time] [-e time] [-i sec]
[-f file]
/usr/lib/sa/sadc [t n] [ofile]
/usr/lib/sa/sa1 [t n]
/usr/lib/sa/sa2 [-ubdycwaqvmprDSAC]
[-s time] [-e time] [-i sec]
Description
sar, in the first instance, samples cumulative activity
counters in the operating system at n intervals of t
seconds, where t should be 5 or greater. If the -o option
is specified, it saves the samples in file in binary format.
The default value of n is 1. In the second instance, with
no sampling interval specified, sar extracts data from a
previously recorded file, either the one specified by the -f
option or, by default, the standard system activity daily
data file /usr/adm/sa/sadd for the current day dd. The
starting and ending times of the report can be bounded via
the -s and -e time arguments of the form hh[:mm[:ss]]. The
-i option selects records at sec second intervals.
Otherwise, all intervals found in the data file are
reported.
In either case, subsets of data to be printed are specified
by option:
-u Report CPU utilization (the default):
%usr, %sys, %wio, %idle - portion of time running in
user mode, running in system mode, idle with some
process waiting for block I/O, and otherwise idle.
When used with -D, %sys is split into percent of time
servicing requests from remote machines (%sys remote)
and all other system time (%sys local).
-b Report buffer activity:
bread/s, bwrit/s - transfers per second of data between
system buffers and disk or other block devices;
lread/s, lwrit/s - accesses of system buffers;
%rcache, %wcache - cache hit ratios, i. e.,
(1-bread/lread) as a percentage;
pread/s, pwrit/s - transfers via raw (physical) device
mechanism. When used with -D, buffer caching is
reported for locally-mounted remote resources.
-d Report activity for each block device, e. g., disk or
tape drive. When data is displayed, the device
specification dsk- is generally used to represent a
disk drive. The device specification used to represent
a tape drive is machine dependent. The activity data
reported is:
%busy, avque - portion of time device was busy
servicing a transfer request, average number of
requests outstanding during that time;
r+w/s, blks/s - number of data transfers from or to
device, number of bytes transferred in 512-byte units;
avwait, avserv - average time in ms. that transfer
requests wait idly on queue, and average time to be
serviced (which for disks includes seek, rotational
latency, and data transfer times).
-y Report TTY device activity:
rawch/s, canch/s, outch/s - input character rate, input
character rate processed by canon, output character
rate;
rcvin/s, xmtin/s, mdmin/s - receive, transmit and modem
interrupt rates.
-c Report system calls:
scall/s - system calls of all types;
sread/s, swrit/s, fork/s, exec/s - specific system
calls;
rchar/s, wchar/s - characters transferred by read and
write system calls. When used with -D, the system
calls are split into incoming, outgoing, and strictly
local calls.
-w Report system swapping and switching activity:
swpin/s, swpot/s, bswin/s, bswot/s - number of
transfers and number of 512-byte units transferred for
swapins and swapouts (including initial loading of some
programs);
pswch/s - process switches.
-a Report use of file access system routines:
iget/s, namei/s, dirblk/s.
-q Report average queue length while occupied, and % of
time occupied:
runq-sz, %runocc - run queue of processes in memory and
runnable;
swpq-sz, %swpocc - swap queue of processes swapped out
but ready to run.
-v Report status of process, inode, file tables:
text-sz, proc-sz, inod-sz, file-sz, lock-sz -
entries/size for each table, evaluated once at sampling
point;
ov - overflows that occur between sampling points for
each table.
-m Report message and semaphore activities:
msg/s, sema/s - primitives per second.
-p Report paging activities:
vflt/s - address translation page faults (valid page
not in memory);
pflt/s - page faults from protection errors (illegal
access to page) or "copy-on-writes";
pgfil/s - vflt/s satisfied by page-in from file system;
rclm/s - valid pages reclaimed for free list.
-r Report unused memory pages and disk blocks:
freemem - average pages available to user processes;
freeswap - disk blocks available for process swapping.
-D Report Remote File Sharing activity:
When used in combination with -u, -b, or -c, it causes
sar to produce the remote file sharing version of the
corresponding report. -Du is assumed when only -D is
specified.
-S Report server and request queue status:
Average number of Remote File Sharing servers on the
system (serv/lo-hi), % of time receive descriptors are
on the request queue (request %busy), average number of
receive descriptors waiting for service when queue is
occupied (request avg lgth), % of time there are idle
servers (server %avail), average number of idle servers
when idle ones exist (server avg avail).
-A Report all data. Equivalent to -udqbwcayvmprSDC.
-C Report Remote File Sharing buffer caching overhead:
snd-inv/s - number of invalidation messages per second
sent by your machine as a server.
snd-msg/s - total outgoing RFS messages sent per
second.
rcv-inv/s - number of invalidation messages received
from the remote server.
rcv-msg/s - total number of incoming RFS messages
received per second.
dis-bread/s - number of buffer reads that would be
eligible for caching if caching were not turned off.
(Indicates the penalty of running uncached.)
blk-inv/s - number of buffers removed from the client
cache.
Examples
To see today's CPU activity so far:
sar
To watch CPU activity evolve for 10 minutes and save data:
sar -o temp 60 10
To later review disk and tape activity from that period:
sar -d -f temp
Data Gathering
The operating system contains several counters that are
incremented as various system actions occur. These include
counters for CPU utilization, buffer usage, disk and tape
I/O activity, TTY device activity, switching and system-call
activity, file-access, queue activity, inter-process
communications, paging, and Remote File Sharing.
sadc and shell procedures, sa1 and sa2, are used to sample,
save, and process this data.
sadc, the data collector, samples system data n times, with
an interval of t seconds between samples, and writes in
binary format to ofile or to standard output. The sampling
interval t should be greater than 5 seconds; otherwise, the
activity of sadc itself may affect the sample. If t and n
are omitted, a special record is written. This facility is
used at system boot time, when booting to a multiuser state,
to mark the time at which the counters restart from zero.
For example, the /etc/init.d/perf file writes the restart
mark to the daily data by the command entry:
su sys -c "/usr/lib/sa/sadc /usr/adm/sa/sadate +%d"
The shell script sa1, a variant of sadc, is used to collect
and store data in binary file /usr/adm/sa/sadd where dd is
the current day. The arguments t and n cause records to be
written n times at an interval of t seconds, or once if
omitted. The entries in /usr/spool/cron/crontabs/sys [see
cron(C)]:
0 * * * 0-6 /usr/lib/sa/sa1
20,40 8-17 * * 1-5 /usr/lib/sa/sa1
will produce records every 20 minutes during working hours
and hourly otherwise.
The shell script sa2, a variant of sar writes a daily report
in file /usr/adm/sa/sardd.
The /usr/spool/cron/crontabs/sys entry:
5 18 * * 1-5 /usr/lib/sa/sa2 -s 8:00 -e 18:01 -i 1200 -A
will report important activities hourly during the working
day.
The structure of the binary daily data file is:
struct sa {
struct sysinfo si; /* see /usr/include/sys/sysinfo.h */
struct minfo mi; /* defined in sys/sysinfo.h */
struct dinfo di; /* RFS info defined in sys/sysinfo.h */
struct rcinfo rc; /* Client cache info defined in sys/sysinfo.h */
struct bpbinfo bi; /* Co-processor info defined in sys/sysinfo.h */
int bpb_utilize /* Co-processor utilize flag */
int minserve, maxserve; /* RFS server low and high water marks */
int szinode; /* current size of inode table */
int szfile; /* current size of file table */
int szproc; /* current size of proc table */
int szlckf; /* current size of file record header table */
int szlckr; /* current size of file record lock table */
int mszinode; /* size of inode table */
int mszfile; /* size of file table */
int mszproc; /* size of proc table */
int mszlckf; /* maximum size of file record header table */
int mszlckr; /* maximum size of file record lock table */
long inodeovf; /* cumulative overflows of inode table */
long fileovf; /* cumulative overflows of file table */
long procovf; /* cumulative overflows of proc table */
time_t ts; /* time stamp, seconds */
long devio[NDEVS][4]; /* device unit information */
#define IO_OPS 0 /* cumulative I/O requests */
#define IO_BCNT 1 /* cumulative blocks transferred */
#define IO_ACT 2 /* cumulative drive busy time in ticks */
#define IO_RESP 3 /* cumulative I/O resp time in ticks */
};
Files
/usr/adm/sa/sadd daily data file
/usr/adm/sa/sardd daily report file
/tmp/sa.adrfl address file
See Also
cron(C), sag(ADM), timex(ADM)
Standards Conformance
sa1, sa2, sadc and sar are conformant with:
AT&T SVID Issue 2, Select Code 307-127.
(printed 8/23/89) SAR(ADM)