Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sar(ADM) — OpenDesktop 2.0.0a

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cron(C)

sag(ADM)

timex(ADM)


 sar(ADM)                        19 June 1992                        sar(ADM)


 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 start and end times of the report can be bounded via
    the -s and -e time arguments in 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, run-
         ning 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, that is, (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:
         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 pro-
         duce 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 utiliza-
    tion, 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 multi-user 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/sa`date +%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/root (see cron(C)):

       0 * * * 6,0 /usr/lib/sa/sa1 3600
       0 8-17 * * 1-5 /usr/lib/sa/sa1 3600
       0 8-17 * * 1-5 /usr/lib/sa/sa1 1200 3

    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/root 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 */
       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  */
       int  apstate;
       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
    /usr/lib/sa/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.


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026