uaio





NAME


  uaio - Reports I/O statistics	(University of Alaska replacement for iostat)


SYNOPSIS


  uaio [-options] [drive ...] [interval] [count]


DESCRIPTION


  The uaio command reports the following information:

    +  Total and for each disk,	the number of transfers	per second, kilobytes
       transferred per second, and|or the average milliseconds per transfer
       (DU v4.0+);

    +  For the system, the percentage of time the system has spent in user
       mode, in	user mode running low priority (nice) processes, in system
       mode, in	wait mode, and idling.

    +  With one	of the summary options,	values for the duration	of sleep *
       iterations are reported.

  uaio is a rewrite of Digital UNIX iostat with	additional functionality,
  including:

    "proper" display of	non-LUN-0 devices (e.g., HSZ40);
    summary displays (by controller/bus	and total);
    play-back capability for re-summarizing logged executions;
    support under DU v4.0 for average service time (ms/transfer);
    display options for	vertical or horizontal;
    display options for	kbytes,	transfers, or rates;
    some other fluff features.

  uaio also replaces uaiostat (formerly	uak_iosts). uaio was written from
  scratch so the source	could be distributed.  uaio has	been tested under DU
  v3.2g	and v4.0b.  Suggestions	for enhancements or bug	reports	can be
  directed to dutools@ts.sois.alaska.edu.


ARGUMENTS


  drive...
       Forces uaio to display specific drives. With -e option in effect
       specific	drives are excluded.  If no drives are specified the first 12
       drives found are	displayed.  Drive names	can be masked with standard
       wild-card characters, such as 'rz2?' or 'rz*57'.

  interval
       Causes uaio to report once each interval	seconds. The first report is
       for all time since a reboot, and	each subsequent	report is for the
       last interval only.

  count
       Specifies the number of intervals reports. For example, uaio 1 10
       would produce 10	reports	at 1-second intervals (as well as the since
       reboot line). You cannot	specify	count without interval because the
       first numeric argument to uaio is assumed to be interval.


OPTIONS


  General options

  -t	  display transfers (count vs. rate);
	  Default display is ' kbs tps', display just transfers	as a count
	  vs. per second.

  -k	  display kbytes (count	vs. rate);
	  Default display is ' kbs tps', display just kbytes as	a count	vs.
	  per second.

  -a	  display average service time (ms/transfer), DU v4.0+ only;
	  Default display is ' kbs tps', display ms/transfers.

  -S	  Summary (full);
	  Display a full summary including ' kbs tps', transfers, kbytes, and
	  ms/trans (DU v4.0+). Also include a horizontal summary display.

  -f x	  file replay option;
	  Will read horizontal summary displays	to re-calculate	summaries.
	  Useful for comparing io rates	from multiple logged executions.
	  Note,	-N(arrow) displays canNOT be summarized.

  Vertical display options

  -p N	  page size (vertical display);
	  Specify the number of	intervals before new headers are printed.
	  iostat default was 15, uaio default is 60.

  -m N	  maximum number of disks to display (vertical);
	  Number of disks to display, iostat default was 4,  uaio default is
	  12.  132 column displays can see 12 disks (plus totals and cpu
	  stats).  80 column display can see 6 disks (plus totals and cpu
	  stats).  The tty statistics have been	removed	from uaio.  If more
	  drives are specified than the	maximum	then all requested drives
	  will be displayed.

  -i	  display only intervals (no since boot	line).

  -w	  display when sampled instead of total	io.

  -n	  narrow vertical display (5 bytes vs. 8 bytes per disk);
	  Reduces columns per disk from	8 to 5 so more can fit on display.
	  The 'since boot' line	is disabled with this (implied -i).  Values
	  greater than 99999 are displayed with	'k' (kilo), 'm'	(mega),	or
	  'g' (giga) following a 4 digit value.	 Note the horizontal -N
	  option implies -n.

  -e	  exclude (specified disks are excluded	vs. included);
	  Specify disks	listed should *not* be included.

  -s	  summary;
	  Include a summary of all intervals upon completion or	receipt	of a
	  HUP signal.

  Horizontal display options (more disks|detail);

  -N	  Narrow horizontal display (5 bytes vs. 8 bytes per disk);
	  This option implies -S and -i	and also eliminates totals for
	  transfers and	kbytes.	 With this option 14 intervals can be
	  displayed on a 132 column screen.  Values greater than 99999 are
	  displayed with 'k' (kilo), 'm' (mega), or 'g'	(giga) following a 4
	  digit	value.

  -h N	  horizontal display, number of	intervals to display;
	  Only 6 (default) will	fit on a 132 column display.

  -v	  vertical display (default except when	-h);

  Miscellaneous	options

  -D	  Debug	(print program diagnostic information).

  -?	  terse	help message.


EXAMPLES


  "Classic" iostat (with -m4 to	reduce display):

       # uaio -m4
       970515.081851 Sleep:1 Iterations:0
	  Total	     rz0     rz25     rz26     rz27	cpu
	kbs tps	 kbs tps  kbs tps  kbs tps  kbs	tps  us	ni sy wa id
	922  48	   .   .  128  10   83	 4  151	  8  15	 0  9  7 69

  Display transfers and	exclude	a disk:

       # uaio -m4 -t -e	rz0
       970515.082013 Sleep:1 Iterations:0
	  Total	    rz25     rz26     rz27     rz28	cpu
       transfer	transfer transfer transfer transfer  us	ni sy wa id
       16399046	 3460951  1480353  2856356   652932  15	 0  9  7 69

  Display kilobytes and	mask disks:

       # uaio -m1 -k rz*57
       970515.082113 Sleep:1 Iterations:0
	  Total	   rzb57    rzc57     cpu
	 kbytes	  kbytes   kbytes  us ni sy wa id
	308736m	56951954 31962769  15  0  9  7 69

  Display average service time (DU v4.0b system):

       # uaio -a
       970515.082435 Sleep:1 Iterations:0
	  Total	     rz0      rz1      rz2	rz3	cpu
       ms/trans	ms/trans ms/trans ms/trans ms/trans  us	ni sy wa id
	  13.95	   13.40    15.51    14.41    20.11   6	 4 11  2 77

  Vertical summary and narrow (for one minute):

       # uaio -m1 -nts rz2* rz*57 15 4
       970515.082929 Sleep:15 Iterations:4
	  Total	 rz25  rz26  rz27  rz28	rzb57 rzc57	cpu
       transfer	trans trans trans trans	trans trans  us	ni sy wa id
	   3604	   75	962   314    84	 1453	324  46	 0 10  0 44
	   1316	   86	247    98    14	    3	147  46	 0  8  0 46
	   1491	  237	 28   231    84	   13	236  64	 0 25  0 11
	   2014	  247	701   194    19	    4	591  56	 0 18  0 26

       970515.083029 Summary:  60 elapsed seconds (Sleep:15 Iterations:4)
	  Total	 rz25  rz26  rz27  rz28	rzb57 rzc57	cpu
       transfer	trans trans trans trans	trans trans  us	ni sy wa id
	   8425	  645  1938   837   201	 1473  1298  53	 0 15  0 32

  Narrow full Summary (horizontal display, DU v4.0b):

       # uaio -SNt 60 2
       970515.101120 Sleep:60 Iterations:2
	  Total	  rz0	rz1   rz2   rz3	    cpu
       transfer	trans trans trans trans	 us ni sy wa id
	    151	   78	  .	1    72	  3  0	6  0 91
	    537	  534	  .	.     3	  3  0	7  0 90

       970515.101320 Summary:  120 elapsed seconds (Sleep:60 Iterations:2)
	  Total	  rz0	rz1   rz2   rz3	    cpu
	kbs tps	  tps	tps   tps   tps	 us ni sy wa id
	171   6	    5	  .	.     1	  3  0	7  0 90
	    688	  612	  .	1    75	:Transfers
	  20504	19816	  .	8   680	:kBytes
	  13.11	12.59	  . 30.00 17.09	:Millisec.

       boot:  97/05/02 12:07:42	moka	   1*125  |   60    60
	      97/05/15 10:11:20	V4.0	      120 |10.21 10.22
		       transfer	 tps transfer  tps trans trans

       Bus#   0:    4:	1622255	   1	  688	 6   151   537

       Disk rz0	     :	1011252	   1	  612	 5    78   534
       Disk rz1	     :	 144889	   0	    .	 .     .     .
       Disk rz2	     :	 446430	   0	    1	 .     1     .
       Disk rz3	     :	  19684	   .	   75	 1    72     3

       cpu User		65570.1	  6%	  3.8	3%    3%    3%
       cpu Nice		44714.1	  4%	  0.0	0%    0%    0%
       cpu System      122565.7	 11%	  7.8	7%    6%    7%
       cpu Wait		18461.3	  2%	  0.0	0%    0%    0%
       cpu Idle	       864923.7	 77%	108.4  90%   91%   90%

  Playback of logged files:

       # uaio -f "`ls ~sxsysu/stats/uaio.970514*`" -h2

       Boot: 97/05/11 09:05:47 glacier	4*437  |    7201    :	  3601	   3600
	     97/05/14 07:00:07 V3.2	       | Seconds    | 08:00:08 09:00:08
		    transfer  tps   kbytes  kbs	 kbs tps  ...  kbs tps	kbs tps

       Bus#  0:	 1:	   .	.	 .    .	   .   .	 .   .	  .   .
       Bus#  3:	 4:  5403519   21 85696465  341	 926  48       681  41 1172  55
       Bus#  6:	 4:   241591	1 14586948   58	  56   1	52   1	 61   1
       Bus#  7:	 5:  4847020   19 93963470  373	 734  49       893  44	574  54

       Total 4:	14: 10492130   42  189694m  754	1999  98      1587  85 2411 110

       Disk rz0	  :	   .	.	 .    .	   .   .	 .   .	  .   .
       Disk rz25  :  2243872	9 28605972  114	  99   8	66   5	133  11
       Disk rz26  :   939246	4 17557185   70	 340  18       315  16	364  19
       Disk rz27  :  1800815	7 30283161  120	 418  19       266  17	570  21
       Disk rz28  :   419586	2  9250147   37	  69   3	33   2	105   4
       Disk rz48  :    63787	0  3743665   15	  13   0	18   0	  9   0
       Disk rz49  :    57513	0  3606617   14	  13   0	 9   0	 17   0
       Disk rz50  :    57261	0  3603649   14	  13   0	 9   0	 17   0
       Disk rz51  :    63030	0  3633017   14	  17   0	17   0	 17   0
       Disk rzb57 :   983783	4 33959994  135	 202   7       190   6	214   7
       Disk rzc57 :  1421823	6 19987105   79	 193  12       166   9	221  14
       Disk rz58  :   780931	3 14704481   58	 293  11       230  11	356  11
       Disk rz59  :   805446	3 10576545   42	 102   8	73   6	131  10
       Disk rz60  :   855037	3 14735345   59	 275  12       235  11	315  12

       cpu User	    137296.0  14%	       |  7266.1  25%	2568.2	 4697.9
       cpu Nice	      1038.8   0%	       |     0.8   0%	   0.0	    0.8
       cpu System    79503.2   8%	       |  3439.9  12%	1171.6	 2268.3
       cpu Wait	     58627.1   6%	       |     0.0   0%	   0.0	    0.0
       cpu Idle	    730189.6  73%	       | 18095.9  63%  10661.6	 7434.3
       [...]


ACKNOWLEDGEMENTS


  While	uaio was written from scratch at the University	of Alaska to emulate
  iostat behaviour for basic features, additional thanks are owed for:

    +  Source for disk identification was "borrowed" from the monitor utility
       available from Digital's	FTP site for free software.
       Thanks to Alan Rollow for providing the monitor code which includes a
       wealth of practical examples of coding as well as being a very useful
       utility.

    +  Also, thanks to (from iostat copyright notice):
	 ``This	product	includes software developed by the
	   University of California, Berkeley and its contributors''
       for the original	iostat distribution (conceptual	basis of uaio).


RESTRICTIONS / NOTES


  Reference uashodev for DU v3.2 vs. v4.0 device identification	differences
  and naming restrictions.  Effective with v1.3	're' disks (swxcr based) are
  recognized.

  Note,	for I/O	performance evaluations	long averages may entirely mask	a
  bottleneck. I/O rates	since boot time	are generally useless other than
  looking at aggregate I/O balancing.  For example, hourly averages may	show
  relatively low I/O load on a disk or bus but you may experience erratic
  performance in a database application	caused by burst	I/O rate contention
  on a device (such as a periodic journal roll).  For isolating	burst I/O
  problems, logging "classic" vertical display for all pertinent disks with a
  small	interval (like a minute) with a	longer period summary (like an hour)
  is a Good Idea.  A sample script, uaio.ksh, is provided in the uaio distri-
  bution.  Also, properly configured UBC can dramatically affect I/O perfor-
  mance.

  The 'Bus#' sub-totals	refer to scsi bus# (controller #).  The	'Ctl#' sub-
  totals refer to non-scsi controller numbers in a relative form.  Since the
  disks	are sorted by controller type then by unit number you may be able to
  determine relative controller	by the order of	the disks, otherwise to
  determine which controller will require use of uashodev.


RELATED INFORMATION


  Commands:  vmstat(1),	iostat(1), uashodev(8).