SAR(ADM) UNIX System V
Name
sar, sa1, sa2, sadc - system activity report package
Syntax
sar [-ubdycwaqvmnprDSAC] [-o file] t [ n ]
sar [-ubdycwaqvmnprDSAC] [-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 [-ubdycwaqvmnprDSAC] [-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).
-n Report name cache statistics. The activity reported
is:
c_hits, cmisses - number of name cache hits and misses;
hit% - the hit ratio as a percentage.
-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 */
int cachehits;/* number of name cache hits */
int cachemisses;/* number of name cache misses */
#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
Notes
Output files created with this version of sar cannot be
interpreted by earlier versions. However, this version
interprets older output files correctly.
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 4/27/90) SAR(ADM)