Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sar(ADM) — OpenDesktop 1.1.0

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 [-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)




























































































































































































































































































































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