VAX-11/780 CPU Usage by Line Printers and Terminals Frank J. Nagy Fermi National Accelerator Laboratory P. O. Box 500 Mail Stop 306 Batavia, IL 60510 This note summarizes the results of a simple set of experiments undertaken to gain an estimate of the amount of CPU time used by line printers and terminals on a VAX-11/780. These tests were undertaken to gather some data to justify a possibly upgrade from DZ11 and LP11 controllers to DMF32 combination controllers. The tests were done on an (otherwise) idle system running under VMS V3.2. The files used for output to the line printers and terminals for the test were FORTRAN source files with an average line length between 30 and 40 characters per line. These files were either printed normally (using the PRINT command) or output to the terminal with a TYPE command imbedded in a continuous loop in a command procedure. The line printers were a 990 lpm LP11-C (LPA0:) and a 600 lpm LXY21 (LPB0:). The terminals were VT100's running at either 9600 or 4800 baud. The VT100's were setup in "jump" scroll mode since the "smooth" scroll mode will reduce the effective baud rate to something near 3600 baud. The measurements were made using MONITOR with the following command: MONITOR/VIEW_TIME=3/INTERVAL=3 MODES/ALL/PERCENT The results presented are the average time (as a percentage) spent in each processor mode for each test. Each test was allowed to run for about 5 minutes in order to accumulate a statistically valid sample. The sum of time spent on the Interrupt Stack and in Kernel mode represent the CPU overhead required to perform the test. The User and Executive (RMS) mode times represent the requirements to setup the data for output (except for a very small amount of Kernel and Interrupt Stack time required to read the data from disk). Line Printer Tests Int. Kern Exec User Idle 0.5 0.1 0.0 0.5 LPA0 only 2.8 3.0 0.6 1.3 LPB0 only 2.4 1.9 0.4 1.0 Both LP's 4.6 6.0 1.1 1.5 Page 2 With the LP11 controller, about 6% of the CPU is required to support every 1000 lines per minute of printer throughput. Linear extrapolation leads to an aggregate printer throughput of 4000 lines per minute requiring 25% of the VAX-11/780 CPU. DEC claims that the DMF32 printer controller reduces the CPU overhead requirement to 75% of that used by an LP11 controller (rough figure from Fall '81 DECUS Symposium) which translates the same 4000 lpm to roughly 18% of the CPU. Terminal Tests at 9600 Baud Terminals Int. Kern Exec User 1 8.3 4.8 3.2 1.0 2 17.2 9.2 6.0 1.4 3 26.3 15.2 9.2 2.1 4 34.1 19.9 11.8 2.7 5 39.0 23.6 14.5 3.4 6 42.0 29.0 17.2 4.0 7 44.9 30.8 17.7 3.9 Clearly supporting 9600 baud terminals with a DZ11 is very bad for the VAX! The data is roughly linear in number of terminals up through 4 terminals (the linear extrapolation indicates that about 8 terminals would require 100% of the CPU time be spent on the Interrupt Stack and in Kernel mode). As 5 and more terminals are added the average output rate is dropping off from 960 characters per second due to the CPU beginning to saturate. With 7 terminals in use there was no essentially idle time available (about 21% of the CPU was required in User and Executive modes to read the disk file and setup the output). Taking into account the deviation from the linear extrapolation, I estimate that with 7 9600 baud terminals, the VAX-11/780 was outputting about 5600 characters per second. Terminal Tests at 4800 Baud Terminals Int. Kern Exec User 1 5.6 2.7 1.9 0.8 2 10.1 5.1 3.3 1.2 3 14.4 7.3 4.9 1.4 4 18.3 10.6 6.6 1.6 5 24.1 13.2 8.5 2.0 The 4800 baud data fits a linear line for percent of CPU time used (sum of Interrupt Stack and Kernel mode times) versus number of terminals. Extrapolation of the line indicates that 10 4800 baud terminals can be run with the same CPU overhead as 6 9600 baud terminals (but this extrapolation probably fails once the CPU overhead reachs 60% or so). This data has lead to reducing the maximum line speeds to 4800 baud for all terminals in order to recovering some CPU time. Page 3 DEC claims the aggregate throughput for the DZ11 controllers should be about 16000 characters per second (80K cps for the DMF32) which is considerably beyond the maximum measured above. However, this value may represent a case in which the terminal output is being generated directly in a user program and sent via QIO to the terminal (thus eliminating RMS overheads for terminal output and file input). Assuming DEC's factor of 5 between the DZ11 and DMF32 would still apply, I would assume that the above tests run with DMF32's would result in needing 35 (or so) 9600 baud terminals to reach the same CPU utilization as 7 9600 baud DZ11-supported terminals.