This application generates VMS System Performance Information HTML
documents. Coupled with 'HyperSpi$agent.c', the data-collection application,
it can profile, complete with graphics, fundamental system performance
indicators as CPU usage, memory usage, IO values. It works extremely well.
This is an example of the output and some
information on its capabilities.
HyperSPI comprises two distinct applications.
- Data Collection Agent -
HYPERSPI$AGENT.C
This is the System Performance Information collection agent for the Hypertext
SPI facility. It executes on selected nodes, writing selected system
performance information into a data file, once every minute. Data collection
has negligable impact on system performance. The data contains per-minute
average and total values (depending on the datum), and peak values based on
the granularity of whatever is the collection period (currently 2 seconds).
These data files are kept on a per-day basis. This data may then be processed
and displayed by the Hypertext SPI facility. It utilizes the undocumented
EXE$GETSPI interface. Interface details plagiarized (and extensively
reworked) from a VMS X Window System utility named SPI.
- Data Presentation Application -
HYPERSPI.C
This application is executed as a CGI script. It operates in two distinct
modes, text and graphic. In text mode it returns an HTML stream to the
browser comprising a hypertext page, with selection menu, node performance
presentation page, data listing or dump page. In graphic mode it returns a
GIF image to the browser, first processing the specified data into an
in-memory bitmap graph, then sending this image to the client via an internal
GIF processor.
The collection agent must started up on all nodes for which inofrmation
is required. The logical name HYPERSPI$DATA locates where the data is
recorded and read from. It is important this data is cleaned-up
occasionally. It uses approximately 140 blocks (70Kbytes) per day per system.
There is an example startup for the
data collection agent.
HyperSPI seems to be fairly sensitive to the EXE$GETSPI()
system call (probably not unreasonably) and may need at-the-least relinking
depending on the exact VMS version. It has been developed and tested on
6.n systems. I have no idea what will happen on under 7.n.