VSI LAN Bandwidth Monitoring Guide for OpenVMS x86-64


1. Introduction to LAN Bandwidth Monitoring

LAN bandwidth monitoring collects and displays LAN device traffic with fine granularity. The LAN common routines (SYS$LOADABLE_IMAGES:SYS$LAN_CSMACD.EXE) uses a one-second timer for various things including transmit timeout handling, DAT (Duplicate Address Test) timing, and MOP (Maintenance Operations Protocol) System ID timing. The timer runs four times per second, with transmit timeout checking done every 250 milliseconds, and most other things done once per second.

Once per second, the LAN driver for each LAN device records the packets and bytes sent and received over the last second and records an entry in an S2-space buffer. Each 32-byte entry is called a bucket and looks like so:

+---------------------------------------------+
|                                             | 0
+--    Entry start time (EXE$GQ_SYSTIME)    --+
|                                             |
+---------------------------------------------+
|              Packets sent                   | 8
+---------------------------------------------+
|            Packets received                 | 12
+---------------------------------------------+
|                                             | 16
+--             Bytes sent                  --+
|                                             |
+---------------------------------------------+
|                                             | 24
+--           Bytes received                --+
|                                             |
+---------------------------------------------+

Once per second, the packets and bytes are calculated for the one-second period just concluding.

A threshold value is defined as the total bytes transmitted and received in the one-second period. By default, this value is 10 000 bytes. A second where the total bytes is less than the threshold value is considered noise or background activity that is not worth tallying explicitly. The threshold value can be set by the LAN Control Program (LANCP) utility.

If the threshold value is zero, buckets contain data for one or more seconds as follows:

  • Zero bytes were recorded for the second; zero buckets are coalesced with subsequent zero buckets.

  • Non-zero bytes were recorded for the second; each bucket is one second.

If the threshold value is non-zero, buckets contain data for one or more seconds as follows:

  • Zero bytes were recorded for the second; zero buckets are coalesced with subsequent zero buckets.

  • Bytes recorded were less than the threshold; these buckets are coalesced with subsequent buckets that did not exceed the threshold.

  • Bytes recorded were above the threshold; each bucket is one second.

One-second periods where the traffic exceeds the threshold are significant. One-second periods with zero traffic are also significant; either there is legitimately no activity, or the network could have an issue.

When entries are coalesced, the time coverage of the bandwidth buffer can be much greater than the nominal size of the buffer in one-second buckets.

2. Use Cases of Monitoring LAN Bandwidth

The information provided by LAN bandwidth monitoring can be useful to anyone interested in the LAN traffic processed by a LAN device, looking at a finer granularity than inspecting the LAN device counters periodically. It is also useful for analyzing a system crash dump. Being able to see the traffic before the time of the crash answers questions about network saturation or network outages.

A system manager may periodically look at the LAN bandwidth to see how an application operates on the LAN devices on the system. A system manager can create a batch job to read the bandwidth data once per day and restart the monitoring, or just record historical data for as long as the bandwidth buffer lasts before the buffer is wrapped.

The size of the buffer can be adjusted to collect a minimum of one year of data, extended by threshold value or zero-byte entry coalescing. A system manager could run a batch job once a day to collect the data and restart monitoring.

3. LANCP Bandwidth Commands

This section lists the LANCP commands that are helpful for bandwidth monitoring. For further information on the LANCP utility and LANCP commands, refer to the relevant section in the VSI OpenVMS System Management Utilities Reference Manual, Volume I: A–L or the LANCP online Help.

To display bandwidth data, use the following command:

LANCP> SHOW DEVICE /BANDWIDTH [devname]

The following qualifiers provide additional functionality:

QualifierFunction
/DUMPFILE=file-specWrites data to a dump file
/INPUTFILE=file-specReads data from a dump file
/EXPANDEDShows data expanded to one-second buckets
/SUMMARYShows summary data
/SINCE[=timespec]Shows data since time
/DURATION[=timespec]Shows data for time duration starting at /SINCE
/LAST[=timespec]Shows data for last time duration
/REVERSEDisplays data latest to oldest
/OUTPUTFILE=file-specRedirects output to an output file

The following additional qualifiers allow you to select certain entries:

QualifierFunction
/1MBShows 1 Mbit/second and larger entries
/10MBShows 10 Mbit/second and larger entries
/100MBShows 100 Mbit/second and larger entries
/1GBShows 1 Gbit/second and larger entries
/2GBShows 2 Gbit/second and larger entries
/5GBShows 5 Gbit/second and larger entries
/10GBShows 10 Gbit/second and larger entries
/[NO]ZEROShows zero/non-zero entries

To display bandwidth summary data included in the configuration display, use the following command:

LANCP> SHOW CONFIGURATION /BANDWIDTH [devname]

To display bandwidth settings, use the following command:

LANCP> SHOW BANDWIDTH

To display permanent device database settings, use one of the following commands:

  • LANCP> LIST BANDWIDTH

    LIST BANDWIDTH lists all devices.

  • LANCP> LIST DEVICE /BANDWIDTH [devname]

    LIST DEVICE /BANDWIDTH only lists the devices specified. If no devname is given, it is functionally equivalent to LIST BANDWIDTH.

To override default bandwidth settings, use one of the following commands:

LANCP> SET DEVICE /[NO]BANDWIDTH=(HOURS=n,THRESHOLD=nbytes,RESTART,DEFAULT) devname
LANCP> DEFINE DEVICE /[NO]BANDWIDTH=(HOURS=n,THRESHOLD=nbytes) devname

where:

HOURS=nSpecifies size of the buffers in hours (3600 buckets per hour)
THRESHOLD=nbytesSpecifies the threshold value
RESTARTRestarts monitoring, discarding existing data
DEFAULTRestarts monitoring with default settings, discarding existing data

To override the default size of the bandwidth buffer for all LAN devices, set the LAN_FLAGS system parameter as follows.

The default size is 2048 buckets (64 kilobytes). The maximum size is 67 hours (7 megabytes of buffer space) set by the LAN_FLAGS system parameter. The time without compression is with a threshold value of zero bytes. With compression (threshold larger than 0 bytes), the time depends on the actual traffic.

Bits <9:11> is the number of megabytes of bandwidth buffer requested as follows:

LAN_FLAGSBucketsMbytesBytesTimeNoCompressTimeCompressed
0x0000000020481/1665 5360.6 hours> 0.6 hours
0x0000020032 76811 048 5769.1 hours> 9.1 hours
0x0000040065 53622 097 15218.2 hours> 18.2 hours
0x0000060098 30433 145 72827.3 hours> 27.3 hours
0x00000800131 07244 194 30436.4 hours> 36.4 hours
0x00000A00163 84055 242 88045.5 hours> 45.5 hours
0x00000C00196 60866 291 45654.6 hours> 54.6 hours
0x00000E00229 37677 340 03263.7 hours> 63.7 hours

To save bandwidth data for later analysis, use the following command:

LANCP> SHOW DEVICE /BANDWIDTH /DUMPFILE=file-spec /OUTPUTFILE=nl: devname

To access the previously saved data, use the following command:

LANCP> SHOW DEVICE /BANDWIDTH /INPUTFILE=file-spec devname

To extract bandwidth data from a crash dump, use the following commands:

$ ANALYZE/SYSTEM
SDA> LAN BANDWIDTH /DUMPFILE[=file-spec] /DEVICE=devname

Note

For more information on using the OpenVMS System Dump Analyzer (SDA), refer to the relevant section in the VSI OpenVMS System Analysis Tools Manual.

To turn off bandwidth monitoring, use one of the following commands:

LANCP> SET DEVICE/NOBANDWIDTH devname
LANCP> SET DEVICE/NOBANDWIDTH/ALL

Using the /SUMMARY Qualifier

The /SUMMARY qualifier converts the raw data displayed by the SHOW DEVICE/BANDWIDTH command into one-second buckets, calculates a running total for each interval, and then displays the maximum values for each interval. The /SINCE, /DURATION, and /LAST qualifiers allow users to specify the desired time period to look at when calculating the running totals. The interval is the size of the window to look at the data. For example, the one-hour interval is the one-hour period that recorded the largest bandwidth over the period selected (as measured from second to second across the entire period).

4. LAN Bandwidth Monitoring Examples

This section provides several example scenarios.

4.1. Example 1

This section looks at the resultant bandwidth data after doing an FTP (TCP/IP is running on EIA).

1. The following example displays the bandwidth data over the last 60 seconds:

$ MCR LANCP SHOW DEVICE/BANDWIDTH/LAST EIA


VMS Device Bandwidth EIA0 (4-DEC-2025 22:52:11.75):
 4-DEC-2025 22:51:12.69 to 4-DEC-2025 22:52:11.75 (00:00:59.05)
2048 buckets, buckets < 10000 bytes coalesced (threshold)

                          Duration       PkXmt PkRcv BytXmt  BytRcv  Mb/s   Code
 4-DEC-2025 22:51:18.93 :   4.16 : EIA0    0     0     0        0      0    Zero
 4-DEC-2025 22:51:23.09 :   1.04 : EIA0    0     1     0       81      0    <1Mb
 4-DEC-2025 22:51:24.13 :   5.20 : EIA0    0     0     0        0      0    Zero
 4-DEC-2025 22:51:29.33 :   1.04 : EIA0    0     1     0       81      0    <1Mb
 4-DEC-2025 22:51:30.37 :   5.20 : EIA0    0     0     0        0      0    Zero
 4-DEC-2025 22:51:35.57 :   1.04 : EIA0    0     1     0       81      0    <1Mb
 4-DEC-2025 22:51:36.61 :   5.20 : EIA0    0     0     0        0      0    Zero
 4-DEC-2025 22:51:41.81 :   1.04 : EIA0    0     1     0       81      0    <1Mb
 4-DEC-2025 22:51:42.85 :   4.16 : EIA0    0     0     0        0      0    Zero
 4-DEC-2025 22:51:47.01 :   1.04 : EIA0  293   844 16144  1205485      9    1Mb
 4-DEC-2025 22:51:48.05 :   1.04 : EIA0   61   168  3354   238800      2    1Mb
 4-DEC-2025 22:51:49.09 :   3.12 : EIA0    0     0     0        0      0    Zero
 4-DEC-2025 22:51:52.21 :   2.08 : EIA0    0     5     0      589      0    <1Mb
 4-DEC-2025 22:51:54.29 :   1.04 : EIA0    0     0     0        0      0    Zero
 4-DEC-2025 22:51:55.33 :   9.36 : EIA0    0    12     0     1385      0    <1Mb
 4-DEC-2025 22:52:04.69 :   1.04 : EIA0    0     0     0        0      0    Zero
 4-DEC-2025 22:52:05.73 :   1.04 : EIA0    0     1     0       81      0    <1Mb
 4-DEC-2025 22:52:06.77 :   5.20 : EIA0    0     0     0        0      0    Zero
 4-DEC-2025 22:52:11.97 :   1.04 : EIA0    0     1     0       81      0    <1Mb
 4-DEC-2025 22:52:13.01 :   4.16 : EIA0    0     0     0        0      0    Zero
 4-DEC-2025 22:52:17.17 :   1.65 : EIA0    0     1     0       81      0    <1Mb

You can see times when there was no data (zero buckets), others with some small amount of data, and then the actual FTP data transfer with over 1 Mbit/second for 2 seconds:

2. The following example also displays the bandwidth data over the last 60 seconds, but restricts the view to one-second intervals with 1 Mbit/second or more:

$ MCR LANCP SHOW DEVICE/BANDWIDTH/LAST/1MB EIA


VMS Device Bandwidth EIA0 (4-DEC-2025 22:52:18.82):
 4-DEC-2025 22:51:18.93 to 4-DEC-2025 22:52:18.82 (00:00:59.88)
2048 buckets, buckets < 10000 bytes coalesced (threshold)

                          Duration       PkXmt PkRcv BytXmt  BytRcv  Mb/s   Code
 4-DEC-2025 22:51:47.01 :   1.04 : EIA0  293   844 16144  1205485      9     1Mb
 4-DEC-2025 22:51:48.05 :   1.04 : EIA0   61   168 3354    238800      2     1Mb

Note that the starting time of the 60 second display is 7 seconds different.

3. The following example uses the /SUMMARY qualifier to look at bandwidth use over a 4-hour 52-minute period. It shows intervals for 1, 10, 60, 600, 3600, and 14 400 seconds, as well as the entire 4-hour 52-minute period:

$ MCR LANCP SHOW DEVICE/BANDWIDTH/SUMMARY EIA

VMS Device Bandwidth EIA0 (8-DEC-2025 18:15:35.10):
 8-DEC-2025 13:22:38.59 to 8-DEC-2025 18:15:35.10 (04:52:56.51)
2047 buckets, buckets < 10000 bytes coalesced (threshold)

                               High Points For Each Interval
Start Time                --Interval---      PkXmt  PkRcv  BytXmt  BytRcv   Mb/s
 8-DEC-2025 14:40:17.59      1.00   1s  EIA0    0      3       0     1071      0
 8-DEC-2025 18:02:38.59     10.00  10s  EIA0    0     12       0     2187      0
 8-DEC-2025 14:41:17.59     60.00   1m  EIA0    0     64       0     4428      0
 8-DEC-2025 13:44:22.59    600.00  10m  EIA0    2    263     308    19515      0
 8-DEC-2025 13:42:40.59   3600.00   1h  EIA0   12    973    1848    84915      0
 8-DEC-2025 13:26:39.59  14400.00   4h  EIA0   48   1767    7392   179564      0
 8-DEC-2025 13:22:38.59         17577s  EIA0   58   1940    8932   203464      0

The 10-second interval, for example, shows the highest 10-second period over the entire period and it was recorded at the 18:02:38.59 mark.

4.2. Example 2

This section looks at the data shown by the /LAST and /SUMMARY qualifiers after running a test program to generate traffic.

1. The following example uses the /LAST qualifier to display bandwidth data for the last 10 seconds:

$ MCR LANCP SHOW DEVICE/BANDWIDTH EIA/LAST=0:00:10

VMS Device Bandwidth EIA0 (2-SEP-2025 20:13:20.96):
2-SEP-2025 20:13:11.05 to 2-SEP-2025 20:13:20.96 (00:00:09.90)
838 buckets, buckets < 10000 bytes coalesced (threshold)

                          Duration           PkXmt      PkRcv     BytXmt     BytRcv   Mb/s  Code
 2-SEP-2025 20:13:11.05 :     1.04 : EIA0    51854      51926   40660056   40924832    628  100Mb
 2-SEP-2025 20:13:12.09 :     1.04 : EIA0    44614      44707   34981302   35233303    540  100Mb
 2-SEP-2025 20:13:13.13 :     1.06 : EIA0    55322      55307   43381014   43590525    656  100Mb
 2-SEP-2025 20:13:14.19 :     1.04 : EIA0    53056      53049   41602536   41806804    642  100Mb
 2-SEP-2025 20:13:15.23 :     1.04 : EIA0    42974      43072   33696514   33946120    520  100Mb
 2-SEP-2025 20:13:16.27 :     1.04 : EIA0    57333      57280   44956463   45143800    693  100Mb
 2-SEP-2025 20:13:17.31 :     1.04 : EIA0    50183      50176   39347600   39544960    607  100Mb
 2-SEP-2025 20:13:18.35 :     1.04 : EIA0    43223      42890   33894674   33804487    521  100Mb
 2-SEP-2025 20:13:19.39 :     1.57 : EIA0    48553      48906   38069182   38544156    390  100Mb

2. The following example also displays the data for the last 10 seconds (a few seconds later), but this time the /SUMMARY qualifier is used to show the summary data:

$ MCR LANCP SHOW DEVICE/BANDWIDTH EIA/LAST=0:00:10/SUMMARY

VMS Device Bandwidth EIA0 (2-SEP-2025 20:14:18.72):
2-SEP-2025 20:14:09.37 to 2-SEP-2025 20:14:18.72 (00:00:09.34)
893 buckets, buckets < 10000 bytes coalesced (threshold)

                                High Points For Each Interval
Start Time                 --Interval---          PkXmt    PkRcv     BytXmt     BytRcv   Mb/s
 2-SEP-2025 20:14:11.37       1.00   1s  EIA0     48650    48686   38148580   38370748    612
 2-SEP-2025 20:14:09.37              9s  EIA0    381440   381590  299096640  300738915    513

3. The following example displays the data for the last 30 seconds. The number of buckets is increasing as a new bucket is written to the bandwidth buffer every second:

$ MCR LANCP SHOW DEVICE/BANDWIDTH EIA/LAST=0:00:30

VMS Device Bandwidth EIA0 (2-SEP-2025 20:14:40.78):
2-SEP-2025 20:14:11.45 to 2-SEP-2025 20:14:40.78 (00:00:29.32)
915 buckets, buckets < 10000 bytes coalesced (threshold)

                          Duration           PkXmt      PkRcv     BytXmt     BytRcv   Mb/s  Code
 2-SEP-2025 20:14:11.45 :     1.04 : EIA0    51340      51377   40257721   40492055    621  100Mb
 2-SEP-2025 20:14:12.49 :     1.04 : EIA0    44696      44598   35048428   35149452    540  100Mb
 2-SEP-2025 20:14:13.53 :     1.04 : EIA0    50481      50541   39583715   39832875    611  100Mb
 2-SEP-2025 20:14:14.57 :     1.04 : EIA0    45803      45291   35913056   35692825    551  100Mb
 2-SEP-2025 20:14:15.61 :     1.04 : EIA0    50223      50735   39381244   39985272    611  100Mb
 2-SEP-2025 20:14:16.65 :     1.04 : EIA0    46673      46494   36597332   36643736    563  100Mb
 2-SEP-2025 20:14:17.69 :     1.04 : EIA0    49792      49775   39043152   39228290    602  100Mb
 2-SEP-2025 20:14:18.73 :     1.04 : EIA0    25104      25340   19684674   19973212    305  100Mb
 2-SEP-2025 20:14:19.77 :     1.04 : EIA0    46128      46139   36170118   36363075    558  100Mb
 2-SEP-2025 20:14:20.81 :     1.04 : EIA0    47104      47110   36935424   37128454    570  100Mb
 2-SEP-2025 20:14:21.85 :     1.05 : EIA0    45571      45558   35734852   35903593    546  100Mb
 2-SEP-2025 20:14:22.90 :     1.04 : EIA0    52797      52853   41397956   41656992    639  100Mb
 2-SEP-2025 20:14:23.94 :     1.07 : EIA0    46529      46489   36484802   36637574    547  100Mb
 2-SEP-2025 20:14:25.01 :     1.04 : EIA0    48942      48882   38376530   38524474    592  100Mb
 2-SEP-2025 20:14:26.05 :     1.04 : EIA0    50269      50334   39417789   39670136    608  100Mb
 2-SEP-2025 20:14:27.09 :     1.07 : EIA0    43161      42971   33845097   33868012    506  100Mb
 2-SEP-2025 20:14:28.16 :     1.04 : EIA0    49691      49863   38961734   39296132    602  100Mb
 2-SEP-2025 20:14:29.20 :     1.04 : EIA0    50884      50871   39901337   40095146    615  100Mb
 2-SEP-2025 20:14:30.24 :     1.05 : EIA0    43443      43273   34065261   34102094    519  100Mb
 2-SEP-2025 20:14:31.29 :     1.04 : EIA0    50865      51014   39884435   40207803    616  100Mb
 2-SEP-2025 20:14:32.33 :     1.04 : EIA0    45272      45128   35496551   35564763    547  100Mb
 2-SEP-2025 20:14:33.37 :     1.05 : EIA0    49688      49810   38963959   39255854    596  100Mb
 2-SEP-2025 20:14:34.42 :     1.04 : EIA0    49640      49507   38921609   39019196    600  100Mb
 2-SEP-2025 20:14:35.46 :     1.04 : EIA0    43919      44018   34438120   34692416    532  100Mb
 2-SEP-2025 20:14:36.50 :     1.04 : EIA0    45941      45972   36025273   36231606    556  100Mb
 2-SEP-2025 20:14:37.54 :     1.04 : EIA0    50706      50664   39760316   39927670    613  100Mb
 2-SEP-2025 20:14:38.58 :     1.05 : EIA0    47184      47186   36998154   37189708    565  100Mb
 2-SEP-2025 20:14:39.63 :     1.15 : EIA0    52122      52254   40867769   41181442    571  100Mb

4. The following example shows the /SUMMARY data for the last 30 seconds:

$ MCR LANCP SHOW DEVICE/BANDWIDTH EIA/LAST=0:00:30/SUMMARY

VMS Device Bandwidth EIA0 (2-SEP-2025 20:14:46.87):
2-SEP-2025 20:14:17.69 to 2-SEP-2025 20:14:46.87 (00:00:29.17)
920 buckets, buckets < 10000 bytes coalesced (threshold)

                                High Points For Each Interval
Start Time                 --Interval---          PkXmt    PkRcv     BytXmt     BytRcv   Mb/s
 2-SEP-2025 20:14:39.69       1.00   1s  EIA0     50019    50143   39219096   39517536    630
 2-SEP-2025 20:14:31.69      10.00  10s  EIA0    461928   462040  362207380  364144768    581
 2-SEP-2025 20:14:17.69             29s  EIA0   1274929  1275014  999703952 1004871677    550

4.3. Example 3

This section looks at running a test program to generate traffic, then crashing the system and looking at the resultant dump file.

1. The following command is used to manually crash the system:

$ RUN SYS$SYSTEM:OPCCRASH.EXE

Open user files prevent dismounting host device _VMS$DKA0:
Cannot deinstall page/swap file DISK$VMS_DKA0:[SYS0.SYSEXE]PAGEFILE.SYS;1
         (index # 254)

VSI Dump Kernel - Handles Shutdown/Reboot/Crash Dumps

** Dumping error logs to the system disk (VMS$DKA0:)
** Error logs dumped to VMS$DKA0:[SYS0.SYSEXE]SYS$ERRLOG.DMP
** (used 52 out of 64 available blocks)
** Dumping memory to the system disk (VMS$DKA0:)

2. Then, after reboot, the following command is used to look at the dump file:

$ ANALYZE/CRASH_DUMP file-spec

OpenVMS system dump analyzer
...analyzing an x86-64 interleaved memory dump...

Dump taken on  2-SEP-2025 20:41:32.22 using version XGR0-K6N
OPERATOR, Operator requested system shutdown

where file-spec is the full path to the dump file.

3. SDA does not display bandwidth data, so the following command is used to extract the data to a dump file:

SDA> LAN BANDWIDTH/DUMP=BAND.DMP/DEVICE=EIA
LAN$SDA(X-88) Extension on VMS (Red Hat KVM) crash at  2-SEP-2025 20:41:32.22
------------------------------------------------------------------------------
Wrote bandwidth data for EIA to BAND.DMP
To view, LANCP SHOW DEVICE/BANDWIDTH/INPUT=BAND.DMP

4. Finally, LANCP is used to look at the bandwidth data using the dump file created with SDA as the input file for LANCP. The following example shows the /SUMMARY data:

$ MCR LANCP SHOW DEVICE EIA/BANDWIDTH/INPUT=BAND.DMP/SUMMARY

VMS Device Bandwidth EIA0 (2-SEP-2025 21:00:19.71):
2-SEP-2025 20:26:16.38 to 2-SEP-2025 20:41:30.77 (00:15:14.39)
878 buckets, buckets < 10000 bytes coalesced (threshold)

                                High Points For Each Interval
Start Time                 --Interval---          PkXmt    PkRcv     BytXmt     BytRcv   Mb/s
 2-SEP-2025 20:31:33.38       1.00   1s  EIA0     53283    53127   41778668   41869964    669
 2-SEP-2025 20:30:09.38      10.00  10s  EIA0    493224   493240  386747508  388734846    620
 2-SEP-2025 20:30:35.38      60.00   1m  EIA0   2862393  2862372 2244474690 2255906912    600
 2-SEP-2025 20:26:18.38     600.00  10m  EIA0  27856427 27856270  21842918k  21954221k    584
 2-SEP-2025 20:26:16.38            914s  EIA0  42355832 42355717  33212263k  33381597k    583

The following example shows the data for the previous 30 seconds:

$ MCR LANCP SHOW DEVICE EIA/BANDWIDTH/INPUT=BAND.DMP/LAST=0:00:30

VMS Device Bandwidth EIA0 (2-SEP-2025 21:00:34.99):
2-SEP-2025 20:41:02.62 to 2-SEP-2025 20:41:30.77 (00:00:28.14)
878 buckets, buckets < 10000 bytes coalesced (threshold)

                          Duration           PkXmt      PkRcv     BytXmt     BytRcv   Mb/s  Code
 2-SEP-2025 20:41:02.62 :     1.04 : EIA0    47078      47087   36913231   37109810    569  100Mb
 2-SEP-2025 20:41:03.66 :     1.04 : EIA0    45806      45848   35918282   36136156    554  100Mb
 2-SEP-2025 20:41:04.70 :     1.04 : EIA0    53617      53585   42041912   42231851    648  100Mb
 2-SEP-2025 20:41:05.74 :     1.04 : EIA0    47127      47123   36955719   37138565    570  100Mb
 2-SEP-2025 20:41:06.78 :     1.04 : EIA0    50217      50252   39374145   39604934    608  100Mb
 2-SEP-2025 20:41:07.82 :     1.05 : EIA0    41943      41941   32890815   33054335    502  100Mb
 2-SEP-2025 20:41:08.87 :     1.04 : EIA0    48832      48834   38290392   38486234    591  100Mb
 2-SEP-2025 20:41:09.91 :     1.06 : EIA0    48826      48842   38283293   38495252    579  100Mb
 2-SEP-2025 20:41:10.97 :     1.04 : EIA0    53795      53824   42183496   42420040    651  100Mb
 2-SEP-2025 20:41:12.01 :     1.04 : EIA0    43048      42938   33754860   33838117    520  100Mb
 2-SEP-2025 20:41:13.05 :     1.05 : EIA0    50686      50676   39744966   39940943    607  100Mb
 2-SEP-2025 20:41:14.10 :     1.04 : EIA0    48012      48075   37647486   37887323    581  100Mb
 2-SEP-2025 20:41:15.14 :     1.07 : EIA0    41587      41430   32609541   32654106    488  100Mb
 2-SEP-2025 20:41:16.21 :     1.04 : EIA0    48867      48895   38316819   38535071    591  100Mb
 2-SEP-2025 20:41:17.25 :     1.04 : EIA0    47474      47529   37224232   37456893    574  100Mb
 2-SEP-2025 20:41:18.29 :     1.04 : EIA0    47724      47825   37423706   37692710    578  100Mb
 2-SEP-2025 20:41:19.33 :     1.04 : EIA0    44751      44649   35090589   35190780    541  100Mb
 2-SEP-2025 20:41:20.37 :     1.04 : EIA0    52123      52164   40870083   41110652    631  100Mb
 2-SEP-2025 20:41:21.41 :     1.04 : EIA0    47909      47910   37567509   37757980    579  100Mb
 2-SEP-2025 20:41:22.45 :     1.04 : EIA0    50148      50100   39320688   39487034    606  100Mb
 2-SEP-2025 20:41:23.49 :     1.04 : EIA0    48522      48497   38048964   38221871    587  100Mb
 2-SEP-2025 20:41:24.53 :     1.04 : EIA0    46977      47134   36835885   37147010    569  100Mb
 2-SEP-2025 20:41:25.57 :     1.04 : EIA0    39295      38240   30812147   30137900    469  100Mb
 2-SEP-2025 20:41:26.61 :     1.04 : EIA0    49921      50948   39144349   40153828    610  100Mb
 2-SEP-2025 20:41:27.65 :     1.04 : EIA0    53779      53741   42168825   42354491    650  100Mb
 2-SEP-2025 20:41:28.69 :     1.04 : EIA0    46636      46008   36569042   36257854    560  100Mb
 2-SEP-2025 20:41:29.73 :     1.04 : EIA0    51943      52544   40727431   41411240    632  100Mb

Note that the dump time was 20:41:32.22 and the bandwidth data stopped at 20:41:30.77, so we can see the activity on EIA just before the crash.

5. Impact on Performance

Collecting this data involves 26–35 MACRO-32 instructions per second. It is very difficult to measure any performance impact due to the impossibility of replicating the exact environmental conditions. For example, any interrupt mitigation differences between tests overwhelms any measurement of the bandwidth monitoring overhead.

If you are concerned about the overhead, you can disable this function with the following command:

LANCP> SET DEVICE/NOBANDWIDTH/ALL

6. S2 Space Considerations

By default, the amount of S2 space available to the pool allocation routines is relatively small.

The maximum size bandwidth buffer is 7 MB per LAN device (using the LAN_FLAGS system parameter), or approaching 1 GB per LAN device using the LANCP SET DEVICE/BANDWIDTH command. Increase the S2 size as needed.

$ RUN SYS$SYSTEM:SYSGEN.EXE
SYSGEN>  SHOW NPAGE
Parameter Name            Current    Default     Min.       Max.   Unit  Dynamic
--------------            -------    -------   -------    -------  ----  -------
NPAGEDYN                 99999744    4194304    163840 1879048192 Bytes
NPAGEVIR                399998976   16777216    163840 1879048192 Bytes
NPAGECALC                       0          1         0          2 Coded-valu
NPAGERAD                        0          0         0         -1 Bytes
NPAGEDYN_S2                     5          2         2       1024 Mbytes
NPAGEXPVIR_S2                   7          4         4       2048 Mbytes

The above example shows NPAGEXPVIR_S2 currently at 7 Mbytes, which will need to be increased to support multiple NICs and bandwidth buffers larger than the default size.

Refer to the relevant section in the VSI OpenVMS Performance Management Manual for general nonpaged pool recommendations and guidelines.

7. Further Data Analysis

To do your own analysis of the data, write a program to read the binary dump file. The dump file is a 32-byte header entry followed by a number of bandwidth entries:

The bandwidth header has the following structure:

+---------------------------------------------+
|    Length of bw data  (excluding header)    | 0
+---------------------------------------------+
|               Threshold value               | 4
+---------------------------------------------+
|                                             | 8
+--            Final entry time             --+
|                                             |
+---------------------------------------------+
|                                             | 16
+--          Monitoring start time          --+
|                                             |
+---------------------------------------------+
|                                             | 24
+--           Oldest entry time             --+
|                                             |
+---------------------------------------------+

A bandwidth entry has the following structure:

+---------------------------------------------+
|                                             | 0
+--    Entry start time (EXE$GQ_SYSTIME)    --+
|                                             | 
+---------------------------------------------+
|              Packets sent                   | 8
+---------------------------------------------+
|            Packets received                 | 12
+---------------------------------------------+
|                                             | 16
+--             Bytes sent                  --+
|                                             |
+---------------------------------------------+
|                                             | 24
+--           Bytes received                --+
|                                             |
+---------------------------------------------+