DECUS Essential Tools Collection, 1996 for OpenVMS Alpha and OpenVMS VAX (VS0174)


			   April 9, 1993

			Ed Heinrich
			The LOKI Group, Inc.
			1957 East Oakshire Lane
			Sandy, Utah 84092
			(801)-576-0730
			heinrich@BYU.EDU

OVERVIEW:

The EPM package provides a means to collect statistics on disk I/O operations 
that VMS does not, by default, provide.  EPM is capable of providing a synopsis 
of the type of disk I/O's, the size of each I/O, and tracking which files are
accessed the most both for read/write operations and as a result of file
fragmentation.


DISCLAIMER:

EPM HAS NEITHER BEEN TOTALLY DEBUGGED NOR TESTED IN EVERY POSSIBLE
CONFIGURATION.

EPM is NOT a commercial product but, rather, is provided free of charge on an 
"as is" basis.  As such, neither Edward A. Heinrich nor The LOKI Group, Inc. 
make any guarantees about the usefulness of any part of this package nor take 
any responsibility for any damage, loss, or harm that may arise out of its 
execution.


PACKAGE CONTENTS:

EPM consists of two parts:

EPMDRIVER is a standard VAX/VMS device driver, that contains code to intercept 
disk I/O request packets, (IRPs), and collect statistics based upon the 
content of the IRP.  EPMDRIVER, which communicates to the display program
via the QIO interface, intercepts the STARTIO address of the disk(s) to be 
monitored.

EPM is the user-interface to EPMDRIVER.  EPM consists of EPM.C and EPM.CLD.
EPM.C is a command line driven program that communicates with EPMDRIVER, via
the QIO interface, to establish the monitoring interval, number of files to
collect statistics for, and the disk devices to intercept.  EPM also provides
a means to display the collected statistics to the current terminal.  EPM.CLD
defines the command line commands used to interact w/ EPM.C.


The EPM command accepts the following qualifiers:

	/INTERVAL
		time, in seconds, between updates.
		default=60

	/DEVICES
		one or more disk devices to be monitored.  

	/FILE_COUNT
		the number of files, with both the most accesses and the ones
		that incurred the most split I/O operations within the interval
		time period.
		default=10

Sample command:
	$ epm/dev=(dka300,dka100)/file=25/inter=120

	collects statistics for DKA300 and DKA100, 25 file entries for both
	most accessed and highest split I/O counts, updates display once every
	two minutes.


BUILD INSTRUCTIONS:

To create the .EXE files use the following:

$! BUILD_EPM.COM 	Creates EPM.EXE and EPMDRIVER.EXE
$!
$cc   EPM
$link EPM, sys$input/opt
sys$share:vaxcrtl/share
$
$mac  EPMDRIVER
$link EPMDRIVER, sys$input/opt
base = 0
sys$system:sys.stb/select
$

To load EPMDRIVER into memory:

$! LOAD_EPM.COM 	Loads EPMDRIVER
$! substitute dev:[directory]
$MC SYSGEN
LOAD dev:[directory]EPMDRIVER
CONN EPMA0/NOADAPTER/DRIVER=EPMDRIVER
$

To execute EPM, add the following command to your LOGIN.COM file or execute it 
at DCL:

$SET COMMAND dev:[directory]EPM

EPM is now available as a command.

Sample output using command "epm/dev=(dka300,dka100)/file=25/inter=120"


Disk DKA300 Statistics as of 15:47:06.17

 Writes:	Reads:  	Swapper: 	Paging I/O	Split I/O 
      4  	    169  	      0  	    112  	      5
 1 Block	4 Blocks	16 Blocks	32 Blocks	64 Blocks
     76  	     52  	     38  	      7  	      0

   DKA300 Split I/O Statistics
Count   File Name
      3	DISK$LOKI_0:[SYSCOMMON.SYSLIB]DECW$DWTLIBSHR.EXE;1
      2	DISK$LOKI_0:[SYSCOMMON.SYSEXE]SYSGEN.EXE;2

   DKA300 Most Accessed File Statistics
Count  File Name
     13	DISK$LOKI_0:[SYSCOMMON.SYSEXE]LOGINOUT.EXE;3
      8	DISK$LOKI_0:[SYSCOMMON.SYSEXE]DIRECTORY.EXE;2
      1	DISK$LOKI_0:[000000]EAH.DIR;1
     12	DISK$LOKI_0:[SYSCOMMON.SYSEXE]TYPE.EXE;2
      6	DISK$LOKI_0:[EAH]FONT.C;1
     12	DISK$LOKI_0:[SYSCOMMON.SYSEXE]SYSUAF.DAT;7
     16	DISK$LOKI_0:[SYSCOMMON.SYSEXE]RIGHTSLIST.DAT;1
      2	DISK$LOKI_0:[000000]INDEXF.SYS;1
      2	DISK$LOKI_0:[SYSCOMMON.SYSMGR]SYLOGIN.COM;2
      8	DISK$LOKI_0:[SYSCOMMON.SYSEXE]SET.EXE;2
      4	DISK$LOKI_0:[SYSCOMMON.SYSLIB]UVMTHRTL.EXE;2
     19	DISK$LOKI_0:[SYSCOMMON.SYSLIB]VAXCRTL.EXE;2
      6	DISK$LOKI_0:[SYSCOMMON.SYSEXE]DECW$TERMINAL_CREATE.EXE;1
      9	DISK$LOKI_0:[SYSCOMMON.SYSLIB]DECW$DWTLIBSHR.EXE;1
      1	DISK$LOKI_0:[SYSCOMMON.SYSLIB]DECW$TRANSPORT_COMMON.EXE;1
      3	DISK$LOKI_0:[SYSCOMMON.SYSLIB]DECW$XLIBSHR.EXE;1
      7	DISK$LOKI_0:[SYSCOMMON.SYSLIB]DECW$TERMINALSHR.EXE;1
     19	DISK$LOKI_0:[SYSCOMMON.SYSEXE]SYSGEN.EXE;2
      1	DISK$LOKI_0:[SYSCOMMON.SYSLIB]SCRSHR.EXE;1
     15	DISK$LOKI_0:[SYS0.SYSEXE]VAXVMSSYS.PAR;1
      1	DISK$LOKI_0:[SYSCOMMON.SYSEXE]TPU.EXE;2
      3	DISK$LOKI_0:[SYSCOMMON.SYSLIB]TPUSHR.EXE;2
      3	DISK$LOKI_0:[SYSCOMMON.SYSLIB]TPU$CCTSHR.EXE;2

Disk DKA100 Statistics as of 15:47:06.17

 Writes:	Reads:  	Swapper: 	Paging I/O	Split I/O 
     34  	     73  	      4  	     59  	     41
 1 Block	4 Blocks	16 Blocks	32 Blocks	64 Blocks
     35  	     21  	     12  	     39  	      0

   DKA100 Split I/O Statistics
Count   File Name
     35	DISK$LOKI_1:[EAH]EVE$SECTION.TPU;1
      3	DISK$LOKI_1:[SYSPAGE]PAGEFILE.SYS;1
      3	DISK$LOKI_1:[EAH]RFC854.TXT;2

   DKA100 Most Accessed File Statistics
Count   File Name
      2	DISK$LOKI_1:[EAH]LOGIN.COM;4
      8	DISK$LOKI_1:[EAH]VERIFY.EXE;3
      1	DISK$LOKI_1:[000000]EAH.DIR;1
     53	DISK$LOKI_1:[EAH]EVE$SECTION.TPU;1
     20	DISK$LOKI_1:[000000]INDEXF.SYS;1
      5	DISK$LOKI_1:[EAH]RFC854.TXT;1
      4	DISK$LOKI_1:[SYSPAGE]PAGEFILE.SYS;1
      8	DISK$LOKI_1:[EAH]RFC854.TXT;2


KNOWN PROBLEMS:

Currently there are no known bugs in EPM V1.3


RESTRICTIONS:

EPM has never been tested on a shadow set disk and, therefore, contains code 
to prevent monitoring of a disk that is a shadow set member.  Any site that 
cares to test EPM in that environment can remove the checks in the EPM_COLLECT
routine in EPMDRIVER.MAR.  Multiple copies of EPM can be run simultaneously
but a disk can only be monitored by one copy of EPM at any time.

Click on FTP to download from the FTP archives.
[FTP]