WASD Hypertext Services - Technical Overview

[next] [previous] [contents] [full-page]

16 - Utilities

Foreign commands for external utilities (and the HTTPD control functionality) will need to be assigned in the adminstration users' LOGIN.COM. Alternatives should be used when the environment supported through NETLIB. For example:

  HTTPD == "$HT_EXE:HTTPD"
  !HTTPD == "$HT_EXE:HTTPD_NETLIB"
  HTTPDMON == "$HT_EXE:HTTPDMON"
  !HTTPDMON == "$HT_EXE:HTTPDMON_NETLIB"
  STREAMLF == "$HT_EXE:STREAMLF"
  WWWRKOUT == "$HT_EXE:WWWRKOUT"
  !WWWRKOUT == "$HT_EXE:WWWRKOUT_NETLIB"


16.1 - Echo Facility

Ever had to go to extraordinary lengths to find out exactly what your browser is sending to the server? The server provides a request echo facility. This merely returns the complete request as a plain-text document. This can be used for for checking the request header lines being provided by the browser, and can be valuable in the diagnosis of POSTed forms, etc.

This facility must be enabled through a mapping rule entry.

  script /echo/* /echo/*

It may then be used with any request merely by inserting "/echo" at the start of the path, as in the following example.

  http://wasd.dsto.defence.gov.au/echo/ht_root/


16.2 - Where Facility

Need to locate where VMS has the HTTPd files? This simple facility maps the supplied path then parses it to obtain a resulting VMS file specification. This does not demonstrate whether the path actually exists!

This facility must be enabled through a mapping rule entry.

  script /where/* /where/*

It may then be used with any request merely by inserting "/where" at the start of the path, as in the following example.

  http://wasd.dsto.defence.gov.au/where/ht_root/


16.3 - Xray Facility

The Xray facility returns a request's complete response, both header and body, as a plain text document. Being able to see the internals of the response header as well as the contents of the body rendered in plain text can often be valuable when developing scripts, etc.

This facility must be enabled through a mapping rule entry.

  script /Xray/* /Xray/*

It may then be used with any request merely by inserting "/xray" at the start of the path, as in the following example.

  http://wasd.dsto.defence.gov.au/xray/ht_root/


16.4 - StreamLF Utility

This utility converts VARIABLE format files to STREAM_LF. The WASD HTTPd server access STREAM_LF files in block/IO-mode, far more efficiently that the record-mode required by variable-record format files. Use "STREAMLF/HELP" for some basic usage information.

NOTE This server can also be configured to automatically convert any VARIABLE record format files it encounters to STREAM_LF.


16.5 - HTTPd Monitor

The HTTP server may be monitored using the HTTPDMON utility. This utility continuously displays a screen of information comprising three sections:

  1. Process Information
    HTTPd process information includes its up-time, CPU-time consumed (excluding any subprocesses), I/O counts, and memory utilization.
  2. Server Counters
    The server counters keep track of the total connections received, accepted, rejected, etc., totals for each request type (file transfer, directory listing, image mapping, etc.).
  3. Latest Request
    This section provides the response status code, and some transaction statistics, the service being accessed, originating host and HTTP request. Note that long request strings may be truncated (indicated by a bolded elipsis).

The following shows example output (after overnight server testing):

 Port: 80    HTTPDMON v1.6.0 AXP (HTTPd v5.1)   Saturday,  4-JUL-1998 09:35:30

 Process: HTTPd:80  PID: 20200467  User: HTTP$SERVER
      Up: 0 13:52:33.62  CPU: 0 06:21:11.35  Restart: 0
 Pg.Flts: 2192  Pg.Used: 6%  WsSize: 9280 (4640kB)  WsPeak: 5888 (2944kB)
     AST:   13/600   BIO:    4/512   BYT:      0/122016  DIO:    2/512
     ENQ:    2/600   FIL:    4/100   PRC:      3/50       TQ:    6/200

 Connect: 365756  SSL: 0 (0%)  Acc/Rej/Bsy: 365756 / 0 / 0  Cur/Peak: 0 / 15
   Parse: 378338  Error: 0  Forbidden: 0  Redirect-Rem/Loc: 0 / 12582
  DELETE: 0  GET: 341316  HEAD: 37022  POST: 0  PUT: 0
   Admin: 0  Cache: 8 / 113449 (0)  DECnet-CGI/OSU: 0 - 0 / 0
     DCL: 87408  CGI/plus: 50475 / 50437 (50202)  Spawn/Cur: 1767 / 3  Dir: 25237
    File: 12591 (0)  IsMap: 0  Menu: 0  Put: 0  SSI: 63093  Upd: 37856

     1xx: 0  2xx: 328403  3xx: 0  4xx: 25200  5xx: 12152  (0 errors)
      Rx: 30,002,610  Tx: 2,950,147,996  (bytes)

    Time: 04 08:35:15  Status: 200  Rx: 80  Tx: 24822  Duration: 2.003
 Service: http://gamma.dsto.defence.gov.au:80
    Host: gamma.dsto.defence.gov.au (131.185.250.202)
 Request: GET /tree/ht_root/*.*

The "/HELP" qualifier provides a brief usage summary.

This information is, in part, obtained from the following logical names:

The server counter values are carried over when a server (re)starts (provided the system has stayed up). To reset the counters use the on-line server administration menu (see 11 - Server Administration).

If [DNSlookup] is disabled for the HTTP server the HTTPDMON utility attempts to resolve the numeric address into a host name. This may be disabled using the /NORESOLVE qualifier.


16.6 - Server Workout (stress-test)

The WWWRKOUT ("World Wide Web Workout") utility exercises an HTTP server, both in the number of concurrent connections maintained and in the number of back-to-back sequential connection requests and data transfers. A native UCX image and a separate NETLIB image are provided.

This utility can be used to stress-test the WASD VMS HTTP server (or any other), or to make comparisons between it and other servers. When stress-testing a server, evaluating performance or just using it to try and break a test-bed server, it is best used from multiple, autonomous systems concurrent.

It sets up and maintains a specified number of concurrent connections to a server. It reads a buffer of data from each connection in turn, where data is waiting (does not block), until the document transfer is complete and the connection closed by the server. It then closes the local end and immediately reuses the now-free socket to initiate another sequence. If enabled (it is by default), the utility attempts to reflect the real-world in varying the data transfer rate for each connection, by setting the number of bytes read during each read loop differently for each connection. All transfered data is discarded.

The data transfer rate for each connection is displayed at connection close. It is by default it is the effective transfer rate, that is the rate from opening the connection to closing it, and so includes request processing time, etc. If the "/NOEFFECTIVE" qualifier is employed it measures the document data transfer rate only.

Although a single document path may be specified on the command line it is preferable to supply a range of document paths, one per line in a plain text file. Each document path and/or type specified should be different to the others, to exercise the server and file system cache. Any number of paths may be specified in the file. If the file is exhausted before the specified number of connections have been established the file contents are recycled from the first path. If a path or a file of paths is not specified the utility just continually requests the welcome document.

To assess a server's total throughput choose paths that lead to large documents (> 50K), where the overhead of connection setup, rule processing and transfer initiation are less significant than the data transfer itself. The buffer size variation functionality should be disabled using the "/NOVARY" qualifier when assessing data transfer rates. Responsiveness is better assessed using small documents (< 2K), where the overhead of the non-data-transfer activities is more significant.

WWWRKOUT [server_host_name[:port]] [path] [qualifiers]

Examples:

  $ WWWRKOUT
  $ WWWRKOUT www.server.host "/web/home.html"
  $ WWWRKOUT www.server.host:8080 /FILEOF=PATHS.TXT
  $ WWWRKOUT /SERVER=www.server.host /PORT=8080 /NOBREAK /NOVARY /FILEOF=PATHS.TXT
  $ WWWRKOUT www.server.host:8080 /FILEOF=PATHS.TXT /NOEFFECTIVE /NOVARY
  $ WWWRKOUT www.server.host /FILEOF=PATHS.TXT /COUNT=500 /SIMUL=20 /BUFFER=512

The "/HELP" qualifier provides a brief usage summary.


[next] [previous] [contents] [full-page]