Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sar(ADM) — OpenDesktop 1.0.0y

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

cron(C)

sag(ADM)

timex(ADM)


     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)

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